2013-03-30 26 views
0

我试图阻止表单提交时没有填写“名称”字段,但它会继续提交,即使submitForm函数返回false。 submitForm函数在用户输入名称失败时(我可以看到当我按下浏览器时看到)名称字段变为黄色,但是警报从不出现,并且表单仍然提交。有任何想法吗?如何在输入无效时不提交表单。

function submitForm() { 
var valid = true; 
var rform = document.forms[0]; 

if (testLength(rform.name)==false) valid=false; 


if ((rform.member[0].checked || rform.member[1].checked)== false) { 
    rform.member[0].style.backgroundColor="yellow"; 
    rform.member[1].style.backgroundColor="yellow"; 
    valid=false; 
} 

if (valid == false) alert("Enter all required information in the appropriate format"); 

return valid; 
} 

而形式。

<form id="reg" method="GET" action="processorder.php"> 
<input id="btnSubmit" type="submit" value="Submit Form" onclick="return submitForm();"/></p> 
+1

你得到任何错误控制台? – Zeta

+0

您是否尝试将验证放在窗体onsubmit事件而不是提交按钮上? – Offbeatmammal

+1

正确做'onsubmit'属性。此外,通常将错误的有效性默认为“false”,并且只有在达到某个特定点时才会成立。 – vol7ron

回答

1

尝试表单元素,而不是onsubmit事件:

<form id="reg" method="GET" onsubmit="return submitForm();" action="processorder.php"> 
    <input id="btnSubmit" type="submit" value="Submit Form"/></p> 
</form> 
+0

试过了,但它没有奏效。仍然有同样的问题。 –

+0

是的。说真的,我不知道为什么这不起作用。它总是告诉我,submitForm是未定义的。但它适用于当我将它附加到窗口对象:http://jsfiddle.net/k7uSj/ – jgillich

+0

哦,你也可以使用jQuerys的[提交](http://api.jquery.com/submit/)事件是远远好于内联JavaScript,并且倾向于在每个浏览器上都能正常工作。 – jgillich

相关问题