2016-09-29 60 views
0

下午所有,我已经建立了一个简单的检查,看看输入是空的还是我的html页面上的null。如果该输入为空,则应该更改隐藏的另一个输入的值,但由于某种原因或其他原因;它只是返回else语句,即使第一个参数为true。检查一个空的输入(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的原始代码更好。 – 2016-09-29 13:40:09

0

将if条件更改为

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

此外,如果你使用类名称HTML作为advar不是输入而是一个div那么你应该使用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'? – 2016-09-29 13:38:58

+0

我一直在使用'getElementsByName'的时间相当长。我也看到它也在其他脚本中列出。 – Beaniie

+1

[MDN'getElementsByName'](https://developer.mozilla。org/en-US/docs/Web/API/Document/getElementsByName) – 2016-09-29 13:41:16

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