-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

オンクリックを削除します

$('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

アドオン JavaScript で、インラインの onclick イベントを削除し、必要なものに置き換えます。問題が解決しました。

彼のボタンを完全に取り外して、選択したボタンに置​​き換えることもできます。

于 2012-12-20T09:31:14.703 に答える
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

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

関数を削除し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 に答える