2015-05-11 18 views
6

Çalışan bir canlı önizleme Script yaşıyorum. Ama şimdi sadece telefon ve faks alanlarının, form alanlarında bir girdi olduğunda görüntülenmesini istiyorum. Ama sanırım boş beyanda bir sorun olmalı. Bunu düzeltmek için bir fikri olan var mı? Çok teşekkür ederim! çalışıyor ve düşündüm araştırma bir sürü sonra Canlı önizlemede boş döngü varsa Jquery

JS Fiddle Update #1

JS Fiddle

$(document).ready(function() { 
    updatePreview(); 

    $('#live-preview-form input, #live-preview-form textarea #live-preview-form select').bind('blur keyup',updatePreview); 
}); 

function updatePreview(){ 
    var contact    = $('#lp-contact'), 
     company_name = $('#lp-company_name'), 
     company_extra = $('#lp-company_extra'), 
     adress   = $('#lp-adress'), 
     country_code = $('#lp-country_code'),   
     zip     = $('#lp-zip'),  
     city   = $('#lp-city'),   
     phone   = $('#lp-phone'), 
     fax     = $('#lp-fax'), 
     url     = $('#lp-url'), 
     mail   = $('#lp-mail'); 


     contact.text($('#contact').val()); 
     company_name.text($('#company_name').val()); 
     company_name.html($('#lp-company_name').html().replace(/\n/g,'<br />')); 
     company_extra.text($('#company_extra').val()); 
     adress.text($('#adress').val()); 
     country_code.text($('#country_code').val() + '-'); 
     zip.text($('#zip').val()); 
     city.text($('#city').val()); 
     if(! $('#phone')){phone.text('T ' + $('#phone').val())}; 
     if(! $('#fax')){fax.text('F ' + $('#fax').val())}; 
     url.text($('#url').val()); 
     mail.text($('#mail').val()); 
} 
, belki de bu kodla çalışır: ama gelmedi.

if (phone.text($('#phone').val().length) != 0){ 
     phone.text('T ' + $('#phone').val()); 
    }; 
+0

bir keman gönderin. – codyogden

cevap

6

Bu koşullar:

if (!$('#phone')) { 
    phone.text('T ' + $('#phone').val()) 
}; 

şey $('#phone') her zaman truthy değer bir jQuery örneği nesne olmasıdır

if (!$('#phone').length) { 
    phone.text('T ' + $('#phone').val()) 
}; 

olmalıdır. Bu nesne, HTML öğelerinin array-like collection'udur. Öğenin sayfada olup olmadığını kontrol etmenin doğru yolu, bu koleksiyonun uzunluğunu kontrol etmektir. Temelde, bu basit snippet'iyle ortaya konabilir:

if ({length: 0}) { 
 
    alert('One'); 
 
} 
 

 
if ({length: 0}.length) { 
 
    alert('Two'); 
 
}

+0

Cevabınız ve çok iyi bir açıklama için çok teşekkür ederim. Kötü senaryoda çalışmıyor. Kemanınızı 2. kod snippet'inizle güncelledim. Hiçbir şey değişmez. Herhangi bir fikir? –

+0

http://jsfiddle.net/dfsq/8j4ykkgu/2/ değil mi? – dfsq

+0

Hayır, ama belki benim sorunumu açıklamakla ilgili problemim :-) Harfler F ve T, yalnızca alanlar içinde bir girdi olduğunda görünür olmalıdır. –