提交表单并观察onsubmit事件

3
这应该很简单,但我不明白:\ HTML
<form id="myform" action="#">
    <input type="submit" value="Submit" />
    <a href="#" onclick="$('myform').submit()">Submit</a>
</form>  

JS (原型)

$('myform').observe('submit', function(e) { 
    alert('submitted!');
    e.stop();
});

为什么只有通过输入触发提交时才会触发提交事件?使用$('myform').submit()命令不应该也触发提交事件吗?
JSFiddle链接:http://jsfiddle.net/d8BdM/

1
当JavaScript提交表单时,onsubmit事件处理程序永远不会被执行:http://www.quirksmode.org/js/forms.html#methods - Victor
2个回答

2

请将您的JavaScript代码更改为以下内容:

$('myform').onsubmit = function() {
    alert('submitted!');
    return false;
};

2

将表单更改为以下形式:

<form id="myform" action="">
<input type="submit" value="Submit" id="sub_but" />
<a href="#" onclick="$('sub_but').click();">Submit</a>
</form>

保留其他代码,我在您的示例中进行了测试,它可以工作。
问候;)

我给提交按钮添加了一个ID...问候;) - Hackerman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接