-1

我有一个这样的表格:

<form id= 'lol' name = 'whyyyyy'>
<input name='dumbo'>
<input name='idiot'>

<input type='submit' value='I have no idea why its like this' onclick='document.lol.submit()'>
</form>

现在,我想阻止实际发送表单,但到目前为止所有尝试都失败了。

我当前的代码如下所示:

$(document).ready(function(){
    $('form[name="whyyyyy"]').submit(function(e){
       e.preventDefault();
        alert(1);
        return false;
     });
})

但内联提交命令似乎绕过了 jQuery 函数。

有人可以把光切碎吗?

编辑:

  1. 表格不能更改,我无权更改。
  2. 点击代码应该触发提交功能,其中包含一些复杂的代码验证墙。所以我必须缓存它触发的提交动作,但我现在不能这样做。
  3. 提交功能应在发送时触发,但不会被触发。

这是 jfiddle 中的代码示例。正如你所看到的,它被jQuery过去了......

http://jsfiddle.net/StCPp/4/

4

8 回答 8

1

如果您不需要提交按钮,为什么不使用常规按钮

<input type="button" />
于 2012-12-20T09:26:33.927 回答
0

删除onclick

$('input[type=submit]').attr('onclick','')

然后将点击事件添加到功能就绪

 $('input[type=submit]').on('click',function(){
      //do your event
});
于 2012-12-20T09:44:47.617 回答
0

好的,如果我做对了,您可以删除内联事件处理程序onclick并添加您的自定义处理程序(您可以在其中进行验证和所有必要的步骤):

$(document).ready(function() {

   var $submit_button = $('input[type=submit]');

   $submit_button.removeAttr('onclick');

   $submit_button.click(function() {
     //TODO: implement your custom handler
     //execute validation etc.
   });

});
于 2012-12-20T09:47:00.290 回答
0

Just use a normal button instead of a submit.

If you want to bypass a submit button you can make the class of the button cancel.

 <input type='submit' class='cancel' value='i have no idea why he done it like this' onclick='document.lol.submit()'>
于 2012-12-20T09:28:58.603 回答
0
<input type='button' value='i have no idea why he done it like this' onclick='document.getElementById('lol').submit()'>

于 2012-12-20T09:27:36.660 回答
0

在您的附加 JavaScript 中,删除内联 onclick 事件并将其替换为您想要的任何内容。问题解决了。

您也可以完全删除他的按钮并用您选择的一个替换它。

于 2012-12-20T09:31:14.703 回答
0

删除该document.lol.submit功能。这样,您就可以为所欲为。

// Magic line
delete document.lol.submit;

// Or
$('form[name="whyyyyy"] input[type=submit]').attr('onclick', '');

$(document).ready(function(){
    $('form[name="whyyyyy"]').submit(function(e){
        e.preventDefault();
        alert(1);
        return false;
    });
});
于 2012-12-20T09:31:48.380 回答
-1

您不一定需要使用 jquery 来实现这一点。你可以使用标准的javascript。

$(document).ready(function(){

    document.whyyyyy.submit = function(e){

        alert(1);
        return false; 
};
});

此示例有效,但您可能遇到了 jquery 错误。

于 2012-12-20T09:50:20.537 回答