2011-08-01 21 views
2

私は自分のフォームに 'submit submit type'ボタンを持っていました。jQueryがフォームを送信できないようにするために「入力送信」ボタンが表示されるのはなぜですか?

そのボタンがフォームを送信していました。理由は何

​​

しかし、私はやってjQueryのを追加したときに、動的に私が入力を置き換えられるまで、それは動作しませんでした提出は、button要素

<input type="submit" ... 

にして送信ボタンをそれ?

動的フォームの送信は、今度はbutton要素でうまくいきますが、原因を突き止めるのに時間がかかりました。

答えて

0

おそらくonSubmit="return false;"をフォームタグに追加する必要があります。

あなたのコードを見ることなく、あなたよりも良い答えを与えることはできません。

2

JavaScriptを使用して動的にサブミットするには、[送信]ボタンのデフォルト動作を停止する必要があります。フォームのsubmitイベントを使用して

$(function() { 
    $(':submit').click(function (event) { 
     event.preventDefault(); 
     // submit the form dynamically 
    }); 
}); 
+0

クールではないアンドリュー – Phil

+0

@phil - 私の謝罪。それは私には少し不利だった。私は自分の答えを元の形に戻しました。 –

1

むしろ、特定のフォーム要素にイベントをクリックキャッチしようとするよりも、フォームの送信を傍受するための最も堅牢な方法があり、例えば

$("#form-id").submit(function() { 
    var form = $(this); 
    var action = form.attr('action'); 
    var method = form.attr('method'); 
    var data = form.serialize(); 

    /// you now have all the information required to 
    /// perform a dynamic or AJAX form submission 

    return false; // prevent default action 
}); 

この方法だけではないだろうイベントをクリックしてキャッチ<input type="submit">,<input type="image">および<button type="submit">要素であるが、フォーカスがテキストフィールドに与えられている間にEnterキーが押されたときにも機能する。

関連する問題