为myform.submit()创建一个处理程序,它通过单击按钮来工作

时间:2011-05-05 19:01:20

标签: jquery ajax dom javascript-events cross-browser

出于某种原因,提交事件在这两种情况下是不同的。请帮忙理解原因。这是一个带有提交和按钮的表单。单击提交并发出警报,单击按钮并触发警报。表单元素有什么不同?我怎样才能使两者相同?顺便说一句:我在Chrome上测试。这需要适用于支持myform.submit();

的所有浏览器
            <FORM id="myform" action="saveform.asp" method="post">
            <input type="hidden" name="my_val" value="" />
            <INPUT id="button" value="Save Button" class="save-submit" type=button >
            <INPUT id="button" value="Save Submit" class="save-submit-hidden" type=submit>
            </FORM>
            <script language=javascript>


                    $("form").submit(function() {
                        alert('submitting');
                        return false;
                    });


                $('.save-submit').click(function() {
                    myform.submit();
                });
            </script>

2 个答案:

答案 0 :(得分:1)

myform.submit();

应该是

$(myform).submit();

并且它对我有用。

编辑:

这似乎是jQuery中的一个错误:jQuery override form submit not working when submit called by javascript on a element

答案 1 :(得分:1)

只需删除所有的JavaScript。单击表单上的type = submit输入会导致提交,不需要javascript。除非您每次提交表单时都需要运行一些javascript(无论如何提交),在这种情况下使用您的$(“表单”)。submit function并删除$('。save-submit')。点击功能。