Javascript 输入无效时如何不提交表单。

Javascript 输入无效时如何不提交表单。,javascript,html,Javascript,Html,我试图阻止表单在未填写“Name”字段时提交,但它会继续提交,即使submitForm函数返回false也是如此。当用户无法输入名称时(我在浏览器上按back键时可以看到),submitForm函数将名称字段变为黄色,但警报从未出现,表单仍然提交。有什么想法吗 function submitForm() { var valid = true; var rform = document.forms[0]; if (testLength(rform.name)==false) valid=fals

我试图阻止表单在未填写“Name”字段时提交,但它会继续提交,即使submitForm函数返回false也是如此。当用户无法输入名称时(我在浏览器上按back键时可以看到),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>


改为尝试表单元素的onsubmit事件:

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


您的控制台中是否出现任何错误?您是否尝试将验证放在forms onsubmit事件而不是submit按钮上?右键执行
onsubmit
属性。此外,通常最好将有效性默认为
false
,并仅在达到某一点时才将其设置为true。如果您使用的是chrome,则可能需要在开发工具设置中启用“保留导航时的日志”以查看错误。我没有收到任何错误。我只是尝试在表单提交事件上进行验证,但没有成功@沃伦,我会记住的。我用的是火狐。说真的,我不知道为什么这样不行。它总是告诉我submitForm是未定义的。但是当我将它附加到窗口对象时,它就可以工作了:哦,你也可以使用jQuerys事件,它比内联javascript好得多,并且可以在每个浏览器上工作。谢谢你的建议。“将其附加到窗口对象”是什么意思?我对html/javascript不是非常熟悉。我的意思是通过编写
window.submitForm=function(){…}
(查看我上面的示例)来添加函数作为窗口对象的属性。但是,这是默认范围,因此只在任何函数之外写入
函数submitForm(){…}
也会将submitForm添加到窗口对象。