javascript - Jquery dacă bucla este goală în previzualizarea live
Am un script de previzualizare live care funcționează. Dar acum vreau ca câmpul pentru telefon și fax să fie afișat doar atunci când există o intrare în câmpurile formularului. Dar presupun că trebuie să existe o problemă cu declarația goală. Are cineva o idee cum să rezolv asta? Vă mulțumesc foarte mult!
$(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());
}
JS Fiddle
Actualizare JS Fiddle #1
După multe încercări și cercetări, m-am gândit, poate funcționează cu acest cod: dar nu a funcționat.
if (phone.text($('#phone').val().length) != 0){
phone.text('T ' + $('#phone').val());
};
Răspuns #1
Aceste condiții:
if (!$('#phone')) {
phone.text('T ' + $('#phone').val())
};
ar trebui să fie
if (!$('#phone').length) {
phone.text('T ' + $('#phone').val())
};
Problema este că $ ('#phone') este un obiect instanță jQuery, care este întotdeauna o valoare adevărată. Acest obiect este o colecție de elemente HTML asemănătoare unui array. Deci, modul corect de a verifica dacă elementul se află pe pagină este să verifici lungimea acestei colecții. Practic, acest lucru poate fi demonstrat cu acest exemplu simplu:
if ({length: 0}) {
alert('One');
}
if ({length: 0}.length) {
alert('Two');
} 