JQuery if empty loop in preview mode

I have a working live view of Script. But now I want the field for phone and fax to be displayed only if there is an input in the form fields. But I think the problem is with an empty operation. Anyone have an idea to fix this? Thank you very much!

$(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

JS Fiddle Update # 1

After many attempts and research that I thought, maybe it works with this code: but it is not.

  if (phone.text($('#phone').val().length) != 0){ phone.text('T ' + $('#phone').val()); }; 
+6
source share
1 answer

These conditions:

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

it should be

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

The fact is that $('#phone') is a jQuery instance object, which is always a true value. This object is a massive collection of HTML elements. The correct way to check if an element is on the page is to check the length of this collection. Basically, this can be demonstrated with this simple snippet:

 if ({length: 0}) { alert('One'); } if ({length: 0}.length) { alert('Two'); } 
+6
source

Source: https://habr.com/ru/post/986943/


All Articles