浏览器清除表单数据

时间:2016-04-06 13:22:04

标签: javascript html forms

我在网站上有一个表单,我正在使用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上。只要所有字段都完整而不管错误,就像提交表单一样。

3 个答案:

答案 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