我在网站上有一个表单,我正在使用JS验证它。我遇到的问题是,在表单验证失败后,浏览器会清除用户输入的数据。
我尝试从按钮中剥离“submit”类型值并使用JS提交表单。我的代码分别检查每个字段,保留任何问题的计数,并且只应在计数>时提交。 0.
function validateForm()
{
var errors = 0;
// if test fails errors++
if(errors > 0)
{
alert("Please correct the following " + errors + " error(s):\n" + errorList);
return false; // I assumed this would prevent the form submitting
}
else
{
document.forms[0].submit();
}
}
我的按钮的代码是
HTML
<button tabindex = "18" id = "submitForm" onclick = "validateForm();">Submit</button>
这不仅限于IE,它也发生在Firefox上。只要所有字段都完整而不管错误,就像提交表单一样。
答案 0 :(得分:1)
将javascript函数调用为onclick = "return ValidateForm();"
。
此外,如果ValidateForm()返回true,则表单将被提交,因此无需编写&#34; document.forms [0] .submit();&#34;。使用以下功能:
function validateForm()
{
var errors = 0;
// if test fails errors++
if(errors > 0)
{
alert("Please correct the following " + errors + " error(s):\n" + errorList);
return false; // I assumed this would prevent the form submitting
}
else
{
return true;
}
}
<input type="submit" value="Submit" tabindex = "18" id = "submitForm" onclick= "return validateForm();" />
答案 1 :(得分:0)
或者你可以这样做:
function validateForm(event)
{
var errors = 0;
// if test fails errors++
if(errors > 0)
{
alert("Please correct the following " + errors + " error(s):\n" + errorList);
return false;
}
return true
并按下按钮
<button tabindex = "18" id = "submitForm" onclick = "return validateForm(event);">Submit</button>
但我建议您使用jQuery:jquery submit
答案 2 :(得分:0)
对于<button>
,默认类型为submit
,如果您不希望提交,请将类型设置为button
。