用jQuery替换onsubmit

3
我有以下代码:

<form name="submissions" action="/" onsubmit="window.open('', 'foo', 'width=900,height=900,status=yes,resizable=yes,scrollbars=yes')" target="foo" method="post">
.......
<input type="submit" id="printbtn" name="printbtn" value="Print" />
<input type="submit" id="editbtn" name="editbtn" value="Edit" />
</form>

* 编辑 *

只有在点击“打印”按钮时,才应该出现window.open窗口。 我想删除onsubmit()事件,并使用jQuery实现。我该如何做?

4个回答

6

这个可以正常工作吗?

$('form[name="submissions"]').submit(function(event){
     event.preventDefault();
     // Do other stuff   
});

更新:实际上,请尝试以下操作...

$(function(){
    $('form[name="submissions"]').removeAttr('onsubmit')
        .submit(function(event){
            event.preventDefault();
                    // This cancels the event...
        });
    // This should fire your window opener...
    $('#printbtn').click(function(){
        window.open('', 'foo', 'width=900,height=900,status=yes,resizable=yes,scrollbars=yes');
    })

});

应该删除onsubmit,并防止表单提交...

谢谢您,但我在我的问题中漏掉了一些内容。请再次审阅我的问题。 - hd.
更新了我的回答...现在怎么样? - jcreamer898
它打开了一个新窗口,但是窗口是空白的,似乎表单没有被提交。 - hd.
我找到了问题,preventDefault不应该被使用。谢谢。 - hd.

4
$('form[name=submission]').submit(function(e) {
  e.preventDefault();
  //your code
});

希望这能帮到你。

谢谢你,但是我在我的问题中漏掉了一些东西。请再次查看我的问题。 - hd.

2
 $("#btn").on('click', function(e) {
  window.open('', 'foo', 'width=900,height=900,status=yes,resizable=yes,scrollbars=yes');
  e.preventDefault();

 });

1
如果你只想移除 onsubmit 函数,我认为这个方法应该可以解决问题。
$("form[name='submissions']").attr('onsubmit', '');

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