2016-09-29 6 views
0

Во второй половине дня все, я построил простую проверку, чтобы увидеть, пуст ли вход или null на моей странице html. Если этот вход пуст, он должен изменить значение другого ввода, который скрыт, но по той или иной причине; он просто возвращает оператор else, даже если первый аргумент является истинным.Проверка пустого ввода (Javascript)

Я не невероятно квалифицирован с помощью Javascript, но большую часть времени я чувствую свой путь. Второй набор глаз был бы очень полезен, чтобы проверить и посмотреть, не упустил ли я какие-либо синтаксические ошибки.

var adjVar = document.getElementById('richaccvar'); // el in question 

if (adjVar && adjVar.value) { // argument check 
    document.getElementsByName('adjvar')[0].value= 'Has Input!'; // true response 
} else { 
    document.getElementsByName('adjvar')[0].value= 'Null Input!'; // false response 
}; 

Запрошенные материалы (Это раздутый HTML)

<script>$(document).ready(function() {$('#pdfimage').click(function() { $('#corexsave').val('false'); $('#corexsaveorder').val('false'); senddata(); setTimeout(function(){  window.open('/aspire/preview?mode=edit&template=19689&dt=20065&mime=application/pdf&t=1475155102355&print=false&t=' + Math.random(), '_blank'); }, 100); });$('.saveasbutton').click(function() {var text = $('#documentname').val();if (text == '') { alert('Document name can not be blank.'); }else{$('#corexdoctitle').val(text); $('.saveorder').removeAttr('disabled'); $('.savebutton').removeAttr('disabled'); $('#corexsave').val('true');$('#corexsaveorder').val('false');senddata();$('#corexsave').val('false');$('#corexsaveorder').val('false');senddata();$('#newdocmodal').modal('hide'); };});});</script>  
    <script type="text/javascript"> function loadstuff() {// --- 
var x = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris gravida, lectus quis aliquam dapibus, neque mi elementum ipsum, ac ultricies leo ipsum ac felis. Fusce varius quam id dui eleifend, at porttitor sem commodo. Phasellus ut imperdiet diam, nec eleifend arcu. Pellentesque non ornare massa, id imperdiet nulla.<br/><br/>Phasellus sed imperdiet neque, non varius nisi. Phasellus feugiat, dolor id varius consequat, justo nisi efficitur neque, ut sagittis nunc tortor nec nunc. Ut dignissim ullamcorper sapien, sed aliquet nunc auctor ut. Nam vel ipsum vel lectus fringilla tempor ut vitae nunc.<br/><br/>Nullam in venenatis turpis. Duis id ex nunc. Proin libero lectus, cursus ac interdum ac, aliquet eu urna. Donec sed pulvinar neque. In tellus nulla, vulputate eget sollicitudin vel, placerat eu ex. Nam non sollicitudin odio. Aliquam vulputate diam ut erat rutrum, quis scelerisque risus ornare.<br/><br/><b>Exterior</b><br/>Donec eu efficitur urna. Ut vitae dictum tellus, ut luctus justo. Nam suscipit sem ut risus bibendum varius. Donec eget quam nec turpis rhoncus euismod in at justo. Aliquam lobortis quam nec nulla posuere sagittis. Pellentesque malesuada vehicula sem, nec vestibulum dui iaculis sit amet. Morbi diam ipsum, congue ut turpis vulputate, dictum sagittis orci.<br/><br/>Vestibulum rhoncus nulla vel vestibulum feugiat. Fusce lobortis molestie pretium. Sed nec metus sed tellus luctus euismod in et arcu. Integer justo tortor, mollis ut eros vel, gravida molestie urna.<br/><br/><b>Location</b><br/>Sed aliquet lorem eu dapibus faucibus. Vivamus eu nibh in tellus tristique finibus vel eget nisi. Nam ultricies, nisi sed rutrum mattis, lacus metus gravida nisi, a interdum dui libero ac ligula. Etiam nec consectetur justo. In feugiat magna ac fringilla auctor. Curabitur sit amet consequat orci. Sed feugiat nisi at metus bibendum sagittis.<br/><br/>Donec non posuere leo, hendrerit tristique eros. Nam scelerisque risus non velit cursus accumsan. Vivamus nec semper tellus, nec vulputate orci. Nam sed augue nec augue tristique ornare ac nec augue. Vestibulum volutpat pulvinar felis malesuada gravida. Phasellus egestas consectetur feugiat. Proin ac justo nunc.<br/><br/><b>Services</b><br/>Maecenas facilisis urna eget elit gravida elementum. Integer enim nisl, dictum eu eros sollicitudin, vestibulum pretium dui. Aenean leo quam, sollicitudin eget egestas vitae, commodo eu nulla. Aliquam consectetur mauris vel aliquet venenatis. Vestibulum purus felis, tempor eu quam eget, tincidunt placerat odio.<br/><br/>Pellentesque vel rutrum erat. Nulla fringilla dui eu volutpat suscipit. Mauris purus nisl, consequat ac ipsum eu, tempor bibendum lectus. Suspendisse sollicitudin turpis ligula, et lacinia felis efficitur porta. Nunc in nulla mauris. Sed feugiat mauris eget ipsum maximus, tempor semper justo facilisis. Pellentesque elementum, justo ut fermentum blandit, urna justo ultrices augue, in placerat tortor tortor at justo.<br/><br/><b>Local Authority</b><br/>Dacorum Borough Council, Civic Centre, Marlowes Hemel Hempstead, Hertfordshire HP1 1HH<br/>Tel: 01442 228000<br/><br/>Council Tax Band: F<br/><br/><b>Directions</b><br/>Sed aliquet lorem eu dapibus faucibus. Vivamus eu nibh in tellus tristique finibus vel eget nisi. Nam ultricies, nisi sed rutrum mattis, lacus metus gravida nisi, a interdum dui libero ac ligula. Etiam nec consectetur justo. In feugiat magna ac fringilla auctor. Curabitur sit amet consequat orci. Sed feugiat nisi at metus bibendum sagittis.<br/><br/>Donec non posuere leo, hendrerit tristique eros. Nam scelerisque risus non velit cursus accumsan. Vivamus nec semper tellus, nec vulputate orci. Nam sed augue nec augue tristique ornare ac nec augue. Vestibulum volutpat pulvinar felis malesuada gravida. Phasellus egestas consectetur feugiat. Proin ac justo nunc. '; 

document.getElementById('richbluvar').value = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris gravida, lectus quis aliquam dapibus, neque mi elementum ipsum, ac ultricies leo ipsum ac felis. Fusce varius quam id dui eleifend, at porttitor sem commodo. Phasellus ut imperdiet diam, nec eleifend arcu. Pellentesque non ornare massa, id imperdiet nulla. Phasellus sed imperdiet neque, non varius nisi.'; 
document.getElementById('richsitvar').value = 'Exampleton 1½ miles, Mainline Station (Express 30 Minutes) 1½ miles, M0 4 miles, M01 4½ miles, Exampleshire 4¾ miles.'; 
document.getElementById('richaccvar1').value = 'Nullam, Lectus, Quis, Aliquam, Dapibus, Neque, Mi, Elementum, Ipsum, Ac, Ultricies, Leo, Ipsum, Ac, Felis, Fusce, Varius, Quam, Id, Dui.'; 
document.getElementById('richaccvar2').value = 'Nullam, Venenatis, Turpis, Duis, Ex, Nunc, Proin, Libero, Lectus, Elementum, Ipsum, Ac, Ultricies, Leo, Ipsum, Ac, Felis, Fusce, Varius, Quam, Id, Dui, Eleifend, At, Porttitor, Sem, Commodo.'; 
document.getElementById('richaccvar3').value = 'Nullam, Venenatis, Turpis, Duis, Ex, Nunc, Proin, Libero, Lectus, Quis, Aliquam, Dapibus, Neque, Mi.'; 
document.getElementById('richbdyvar').value = x; 

// --- 
document.getElementsByName('pnvar')[0].placeholder='Example ; Poppy Mannor'; 
document.getElementsByName('plvar')[0].placeholder='Example ; Agloe, Hertfordshire'; 
document.getElementsByName('telvar')[0].placeholder='Example ; +44 (0)1234 567 890'; 
document.getElementsByName('faxvar')[0].placeholder='Example ; +44 (0)1234 567 890 (Optional)'; 
document.getElementsByName('add1')[0].placeholder='Example ; 123 Tessry Lane'; 
document.getElementsByName('add2')[0].placeholder='Example ; Example Ave.'; 
document.getElementsByName('couvar')[0].placeholder='Example ; Hertfordshire'; 
document.getElementsByName('ctyvar')[0].placeholder='Example ; Exampleton'; 
document.getElementsByName('pstvar')[0].placeholder='Example ; EX0 7LE'; 
document.getElementsByName('emavar')[0].placeholder='Example ; [email protected]'; 
document.getElementsByName('revvar')[0].placeholder='Example ; EEE1234/6789012 EXA/MPLE'; 
// --- 
var adjVar = document.getElementById('richaccvar'); 

if (adjVar && adjVar.value) { 
    document.getElementsByName('adjvar')[0].value= 'Has Input!'; 
} else { 
    document.getElementsByName('adjvar')[0].value= 'Null Input!'; 
};} </script> 
    <script>function senddata() {$("#bluvar").val($('#richbluvar').code());$("#sitvar").val($('#richsitvar').code());$("#accvar").val($('#richaccvar').code());$("#accvar1").val($('#richaccvar1').code());$("#accvar2").val($('#richaccvar2').code());$("#accvar3").val($('#richaccvar3').code());$("#accvar4").val($('#richaccvar4').code());$("#accvar5").val($('#richaccvar5').code());$("#accvar6").val($('#richaccvar6').code());$("#bdyvar").val($('#richbdyvar').code()); var arrayData, objectData; var proofurl = '/aspire/preview?mode=edit&template=19689&dt=20065&width=' + $('#coreximagewidth').val(); arrayData = $('#form').serializeArray(); $.ajax({  type: 'POST',  url: '/aspire/preview?template=19689&dt=20065&document=' + $('#corexdocumentid').val(),  data: arrayData,  contentType: 'application/json; charset=utf-8;',  dataType: 'json',  success: function(data) {   $('#previewimage').attr('src', proofurl +'&t=' + Math.random());   $('#previewimage').load(function() {    $(this).show(); if($(this).parents('.sticky-wrapper').length === 0) {$(".js-sticky-image").sticky({ topSpacing:80, bottomSpacing: 80});var minHeight = $(".seq-interactive-image img").height() + 20 + 60; $('.seq-product-editor-main').css({'min-height' : minHeight });}   }).each(function(){ if(this.complete) { $(this).trigger('load'); } });    if (data != null) {     var obj = data.responseText;    if (obj.indexOf('documentid:') === 0) {     $('#corexdocumentid').val(obj);     if ($('#corexsaveorder').val() == 'true') {      $('#corexsaveorder').val(false);   window.location.replace('/aspire/OrderSelect.jsp?sp=' + $('#corexproductid').val() + '&sp=' + $('#corexdocumentid').val() , '');   }    }else{     $('#corexsaveorder').val(false);    }   }  },  error: function(data) {    var obj = data.responseText;   if (obj.indexOf('documentid:') === 0) {    $('#corexdocumentid').val(obj);    if ($('#corexsaveorder').val() == 'true') {     $('#corexsaveorder').val(false);  window.location.replace('/aspire/OrderSelect.jsp?sp=' + $('#corexproductid').val() + '&sp=' + $('#corexdocumentid').val().replace('documentid:', ''));  }   }else{    $('#previewimage').attr('src', proofurl + '&t=' + Math.random());    $('#previewimage').load(function() {     $(this).show(); if($(this).parents('.sticky-wrapper').length === 0) {$(".js-sticky-image").sticky({ topSpacing:80, bottomSpacing: 80});var minHeight = $(".seq-interactive-image img").height() + 20 + 60; $('.seq-product-editor-main').css({'min-height' : minHeight });}    }).each(function(){ if(this.complete) { $(this).trigger('load'); } });     $('#errorlist').hide();    $('#errorlist').empty();    if (obj != null && obj != '') {     $('#errorlist').append(obj);     $('#errorlist').show();    }   }  } }); if ($('#corexdoctitle').val() == '') {  $('#savebutton').hide();  $('#saveorder').hide(); }else{  $('#savebutton').show();  $('#saveorder').show(); };}$(document).ready(function() { senddata(); });</script> 

<span> 

</span> 

    <script type="text/javascript"> 
     loadstuff(); 
    </script> 



         <!-- end header banner --> 
       </div> <!-- end page content wrapper inner --> 
      </div> <!-- end page content wrapper --> 
     </span> 

    <script type="text/javascript"><!-- 
tapestry.addOnLoad(function(e) { 
dojo.require("tapestry.form");tapestry.form.registerForm("mainsearch"); 

tapestry.form.focusField('menu-search-field');}); 
// --></script></body> 
</html> 
+0

Что такое элемент 'adjvar'? – Satpal

+0

@Satpal Простой ввод текста в формате HTML. – Beaniie

+0

Показать HTML и когда вы выполняете вышеуказанный оператор? – Satpal

ответ

0

проверка на я бы длину строки:

var adjVar = document.getElementById('richaccvar').value; 
if (adjVar.length >0) { 
    document.getElementsByName('adjvar')[0].value= 'Has Input!'; // true response 
} else { 
    document.getElementsByName('adjvar')[0].value= 'Null Input!'; // false response 
}; 

возможно также сократить пробелы до

+0

Проверка длины ничем не отличается, и вы не проверяете элемент первым. Исходный код OP лучше. –

0

Измените условие if на

if (adjVar != null && adjVar.value != '') 

Кроме того, если вы HTML с именем класса, как advar не вход, но ДИВ, то вы должны использовать innerHTML вместо value, чтобы установить значение

function check() { 
 

 
var adjVar = document.getElementById('richaccvar'); // el in question 
 
console.log(adjVar); 
 
if (adjVar != null && adjVar.value != '') { // argument check 
 
    console.log('true'); 
 
    console.log() 
 
    document.getElementsByClassName('adjvar')[0].innerHTML= 'Has Input!'; // true response 
 
} else { 
 
    document.getElementsByClassName('adjvar')[0].innerHTML= 'Null Input!'; // false response 
 
}; 
 
    
 
    }
<input type = "text" id="richaccvar" onBlur="check()"/> 
 
<div class="adjvar"></div>

+0

Нет ничего плохого в том, как в настоящее время записывается условие. Зачем им это нужно менять? И почему вы считаете, что это не 'getElementsByName'? –

+0

Я довольно долго использовал 'getElementsByName'. Я также видел, что он также указан в других сценариях. – Beaniie

+1

[MDN 'getElementsByName'] (https: //developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByName) –

0

ПОХОЖЕ, как вы хотите событие onchange, чтобы увидеть, был ли введен вход.

var adjVar = document.getElementById('richaccvar'); // el in question 

adjVar.onchange = function() { 

    if (adjVar.value) { // argument check 
     document.getElementsByName('adjvar')[0].value= 'Has Input!'; // true response 
    } else { 
     document.getElementsByName('adjvar')[0].value= 'Null Input!'; // false response 
    }; 
}; 
+0

Я проверил эту теорию, немного исследовав ее. С 'onchange' я полностью теряю всю функцию аргумента. – Beaniie

Смежные вопросы