2012-07-21 155 views
-1

我写了一段简单的javascript来验证复选框组。 JavaScript工作正常,但在html中正确实现它证明是困难的。无论如何,尽管验证失败,我的尝试或者导致表单被发送,或者没有提交按钮,但其他一切正常工作。有人能够帮助吗?感谢html表单验证的正确实现

<form id="form1" name="form1" method="get" action="pre_process.php"> 
     <input name="q" type="text" value="<?php echo $_GET['q']; ?>" size="67"/> 



<input type="submit" id="search_button" onclick= "chkChecks()" /> 
/////this line of code submits the form even when the javascript returns false 

<input class="submit" type="button" onclick="chkChecks()" /> 
///this code works, doesn't send the form, but also takes away my nice shiny submit button 

    ///////js code///// 
    function chkChecks(){ 
isChecked=false 

for(var i=0;i<document.forms["form1"]["SearchEngines[]"].length;i++){ 
if(document.forms["form1"]["SearchEngines[]"][i].checked){ 
isChecked=true 
} 
} 

if(isChecked){ 
document.forms["form1"].submit() 
} 
else{ 
alert('Please select at least one Search Engine') 
return false; 
} 

} 
</script> 

////也表单的一部分被验证

<table width="200"> 
       <tr> 
       <td><label> 
        <input type="checkbox" name="SearchEngines[]" value="Bing" id="SearchEngines_0" checked="checked" /> 
        Bing</label></td> 
       </tr> 
       <tr> 
       <td><label> 
        <input type="checkbox" name="SearchEngines[]" value="Blekko" id="SearchEngines_1" checked="checked" /> 
        Blekko</label></td> 
       </tr> 
       <tr> 
       <td><label> 
        <input type="checkbox" name="SearchEngines[]" value="Entireweb" id="SearchEngines_2" checked="checked" /> 
       Entireweb</label></td> 
       </tr> 
+0

u能显示你的js代码的验证类? – Shreedhar 2012-07-21 01:47:05

+0

感谢所有的输入人员,但实际上最后我需要做的就是在这行代码中添加一个_value =“Submit”_ __ input class =“submit”type =“button”onclick =“chkChecks( )“/> _并且一切正常。对不起,如果我没有明确问题。无论如何感谢 – shanahobo86 2012-07-21 09:28:39

回答

0

按钮将无法提交表单 - 它们默认情况下不执行任何操作。它们通常与JavaScript结合使用,作为AJAX应用程序的一部分。

按钮将在用户点击它们时提交他们所在的表单,除非您使用JavaScript另外指定。

检查isChecked变量是true还是false,如果它是false,则执行一些检查并将该变量设置为true。

if(isChecked !== true) { 
    for(var i=0;i<document.forms["form1"] ["SearchEngines[]"].length;i++){ 
     if(document.forms["form1"]["SearchEngines[]"][i].checked){ 
      isChecked=true 
     } 
    } 
} 
+0

好的谢谢你的回复。我确实需要一个按钮。你会如何建议我继续? – shanahobo86 2012-07-21 01:56:52

+0

检查isChecked变量是true还是false,如果它是false,则执行一些检查并将该变量设置为true。对于(var i = 0; i Shreedhar 2012-07-21 01:59:10

0
<input class="submit" type="button" onclick="chkChecks()" /> 

你的功能chkChecks可能会返回假,但是从属性产生的实际处理更像是这样的:

function(event) { 
    chkChecks(); 
} 

这是更好地使用JavaScript附加事件处理程序,以便在返回值得到承认:

document.getElementById("submitbutton").onclick = chkChecks;