3

私はここにこの単純なコードを持っていますが、それほど高度なものはありません。

    $("input#send").submit(function(event){
      event.preventDefault();
    $.ajax({
        type: 'POST',
        url: add.php,
        data: data,
        success: success,
        dataType: dataType
    });
});

「送信」ボタンをクリックしてもevent.preventDefault機能が動作せず、ページが読み込まれます。

なぜ何かアイデアはありますか?

4

7 に答える 7

10

フォームには、ボタンではなく送信イベントがあります。さらに、IDは一意である必要があるためtag#id#id

$("#theform").submit(function(event) {
    event.preventDefault();
    // ...
});
于 2011-12-16T21:33:43.430 に答える
7

フォームの送信を停止する場合は、フォームのsubmitイベントまたはボタンのイベントにバインドしてclick呼び出す必要があります。event.preventDefault()

$('form').bind('submit', function (event) {
    event.preventDefault();
});

$('form').find(':submit').bind('click', function (event) {
    event.preventDefault();
});
于 2011-12-16T21:34:18.900 に答える
2

送信イベントはフォーム要素用だと思います。input [type ='button']の場合、クリックイベントを使用することをお勧めします。

于 2011-12-16T21:34:10.073 に答える
1
  1. 引用符を追加する'add.php'
  2. 最初の行のセレクターを、idを含むフォームの属性に変更しますinput#send

submit()入力のハンドラーではなくフォームのハンドラーを処理する利点はclick、Enterキーを押すことで一部のフォームを送信できることです(ユーザーがフォームフィールドの1つにフォーカスしている場合)。属性がない場合は、id属性を追加するか、別のjQueryセレクターを使用してフォームタグをターゲットにします。

$("#myform").submit(function(e) {
    e.preventDefault();
    $.ajax({
        type: 'POST',
        url: 'add.php',
        data: data,
        success: success,
        dataType: dataType
    });
    return false;
});
于 2011-12-16T21:35:25.457 に答える
0

あなたがpreventDefaultを使用している場合、それはあなたがデフォルトの送信アクションを望まないことを意味すると思います。.submitを使用する代わりに、別のイベントを使用します。私にとって、傍受したいのは送信アクションではなく、通常は送信の原因となるクリックです。

$('#inputSend').on('click', function(event) {
  event.preventDefault();
  //the rest
});
于 2011-12-16T21:37:06.703 に答える
0

代わりにreturnfalseを使用してみてください

$("input#send").submit(function(event) {
    $.ajax({
        type: 'POST',
        url: add.php,
        data: data,
        success: success,
        dataType: dataType
    });
    return false;
});
于 2011-12-16T21:32:30.777 に答える
0

両方とも機能しない場合はreturn falseevent.stopPropagation()次の方法を試してください。を使用.on()すると、送信機能にアクセスできるようになります。に変更する.submit()と、または.on("submit"..)を使用できます。return falsee.stopPropagation()

$(document).on("submit", "input#send", function(event) {
    event.stopPropagation();
    $.ajax({
        type: 'POST',
        url: add.php,
        data: data,
        success: success,
        dataType: dataType
    });
    return false; });
于 2017-02-13T16:50:42.317 に答える