在我的表格中,我有以下内容
<script>
function validate(form)
{
if(form.xyz.value=='') return false;
return true;
}
</script>
<form onsubmit="return validate(this)">
<input name="xyz">
<input type="submit" value="submit">
</form>
由于某种原因,我必须动态分配onsubmit侦听器。
我定义
document.forms[0].addEventListener('submit',validate);
但是如何动态实现return validate(this)
(我需要纯JavaScript,而不是jQuery)
答案 0 :(得分:1)
传递给事件处理函数的第一个参数是the Event object。如果要传递其他值,则创建一个新函数并显式传递它。
function validateEventHandler(event) {
return validate(this);
}
document.forms[0].addEventListener('submit',validateEventHandler);
…但是我会重写validate
,以便它只使用this
而不是form
参数。
答案 1 :(得分:0)
根据对此信息JavaScript code to stop form submission的回答,我实现了event.preventDeafault()
命令以防止在该字段为空时提交。
<form>
<input name="xyz">
<input type="submit" value="submit">
</form>
<script>
function validate(event)
{
if(document.forms[0].xyz.value=='')
{
alert('Mandatory field!');
event.preventDefault();
}
}
document.forms[0].addEventListener('submit',validate);
</script>