表单onsubmit动态附加以进行验证

时间:2013-10-17 21:57:07

标签: javascript validation

我正在尝试使用

动态添加onsubmit事件
if (window.addEventListener){   
    window.addEventListener('load', attachFormSubmit, false); 
} else if (window.attachEvent){ 
    window.attachEvent('onload', attachFormSubmit );
}

但如果您在此网址http://www.w3schools.com/js/js_form_validation.asp

上看到该示例

它说。

<form onsubmit="return validateForm()" />

return语句,如何使用动态赋值。

EDIT ..

我的问题是关于使用return语句在onsubmit中的内联调用,我们可以在onsubmit处理程序内部硬编码“return validateForm()”中动态执行此操作吗?

2 个答案:

答案 0 :(得分:0)

<强> HTML

<form action="processor.php" method="post" id="myform">
    <input type="checkbox" id="agree" name="agree"/>
    <label for="agree">I agree to the TOS.</label>
    <input type="submit" value="Submit">
</form>

<强>的Javascript

如果您已经找到了良好的跨浏览器DOMContentLoaded / onload实现,则假设init()在开始时运行。

function validateForm(evt) {
    if(!document.getElementById('agree').checked) {
    //  W3C spec
        if(evt.preventDefault)
            { evt.preventDefault(); }
    //  IE < 9
        else if(evt.returnValue)
            { evt.returnValue = false; }
    //  catch-all
        return false;
    }
}
function init() {
    var myForm = document.getElementById('myform');

//  W3C spec
    if(myForm.addEventListener)
        { myForm.addEventListener('submit',validateForm,false); }
//  IE < 9
    else if(myForm.attachEvent)
        { myForm.attachEvent('onsubmit',validateForm); }
//  catch-all
    else
        { myForm.onsubmit = validateForm; }
}

答案 1 :(得分:0)

为您的表单提供ID,然后执行:

document.getElementById("formId").onsubmit = validateForm;