我正在动态地在网页上创建JavaScript表单。

创建表单后,它会触发我的提交按钮的onclick事件(并因此触发我为该表单创建的验证功能)。

创建表单时如何防止onclick事件触发?

以下是相关的代码段:

var myForm = document.createElement('form');
myForm.action = 'http://www.urlhere.com';
myForm.method = 'post';

var mySubmit = document.createElement('input');
mySubmit.id = 'submitButton';
mySubmit.type = 'Submit';
mySubmit.value = 'Book Now';
myForm.appendChild(mySubmit);
myLayer.appendChild(myForm);
mySubmit.onclick = validateNow();

这是验证功能:
function validateNow() {
    alert('Validating Form');
}

最佳答案

这就是问题:

mySubmit.onclick = validateNow();

上面没有分配函数引用,而是运行validate函数。试试这个:
mySubmit.onclick = validateNow;

或这个:
mySubmit.onclick = function () {
    validateNow();
};

09-04 23:39