2015-10-18 36 views
0

我正在使用它来检查字段是否为空。问题是,当字段为空时,错误消息从不会被抛出,它允许提交。是否因为我试图在按钮上运行onclickonclientclick?这是我的语法

HTML如何防止使用JavaScript的空白字段?

<asp:Button ID="main1212" runat="server" Text="Check If JS Works" 
OnClick="DoSomethingDoNothing_OnClick" OnClientClick="return ValidateData();" /> 


JS

<script type="text/javascript"> 
function ValidateData() { 
    var main1212, dropdownselection, dropdownselection1, field21 
    main1212 = document.getElementByID("txt313").value; 
    dropdownselection = document.getElementByID("dropdownlist1").value; 
    dropdownselection1 = document.getElementByID("dropdownlist11").value; 
    field21 = document.getElementByID("txt12").value; 
    if (main1212 == '') 
    { 
     alert("Error"); 
     return false; 
    } 
    if (dropdownselection == '') 
    { 
     alert("Error"); 
     return false; 
    } 
    if (dropdownlist1 == '') 
    { 
     alert("Error") 
     return false; 
    } 
    if (field21 == '') 
    { 
     alert("Error"); 
     return false; 
    }} 
</script> 



编辑 如果我打开浏览器控制台,然后按应运行我的脚本按钮他们没有显示错误?

+0

你的JavaScript在做什么?你确定它运行?通过代码需要哪条路径?学习调试你的代码(逐行执行,检查值)。 – mason

+2

如果你打开你的Web控制台,你会看到一个错误,告诉你什么是错误的:'getElementByID'中的'D'应该是小写。始终,始终,如果您的代码正在做出意想不到的事情并且寻找错误,请始终打开Web控制台。还可以使用内置在浏览器中的强大的调试器来逐行观看代码。 –

+0

@mason - 没有任何警报被触发。我会谷歌学习如何登录到控制台,看看是否会告诉我我的问题是在哪里。 – MustangLover

回答

0

它缺少一个分号在功能是validateData的这条线(不知道):

var main1212,dropdownselection,dropdownselection1,field21; 

(这是很好的避免额外的空间,也没有为这个变量)

它可能更简单,或者像这样:

window.onload=function(){document.getElementById('main1212').onclick=function(){ValidateData();};} 
+2

通过引用一个逗号并指出你的意思是在'field21后面说';'(一个分号);' – haraman

+2

纠正那个@TJ的评论使'd'小写的Crowder工作。 – MustangLover

相关问题