2013-01-31 16 views
8

検出します最初に出てくるbttnsubmit要素の値を返すので、私は他の魔法のセレクタやフィルタなどが必要です。jqueryのは、私は次のフォームを持っているボタン提出フォーム

私がもてはやさが、それはまだ私の試みで働いていない$('[name=bttnsubmit][clicked=true]')を見てきました...

私は$('[name=bttnsubmit]').click()へのコースのリゾートでしたが、イベントを提出する形で自分の目標を達成することができることを好むだろう。

大変助かりました。

答えて

12

イベントデータが組み込まれているかどうかはわかりませんが(多分ありますが)、ボタンのクリックイベントを処理して値のグローバル参照を格納することが考えられます。このような何か:

var ButtonValue; 

$('button[type="submit"]').click(function(e){ 
    ButtonValue = $(this).val(); 
}); 

$('#my-form').submit(function(){ 
    //psuedo code 
    if(ButtonValue == 1) 
    { 
     .... 
    } 
}); 
+0

私をします。 thanx –

0

あなたの声明について:

私が見てきた$( '[名= bttnsubmit] [クリックする=真]')が約もてはやさが、それはまだ私の試みで働いていません...

これは、他の場所で正しく説明されていないことがわかりました。それは自動的なものではありません。送信ボタンがクリックされるたびに、「クリック」属性を追加することによってそれを設定する必要があります。

$("#my-form input[type=submit]").click(function() { 
    $("input[type=submit]", $(this).parents("form")).removeAttr("clicked"); 
    $(this).attr("clicked", "true"); 
}); 
$("#my-form").submit(function() { 
    var clickedSubmitValue = $("input[type=submit][clicked=true]").val(); 
    if (clickedSubmitValue == "1") 
    { 
     ... 
    } 
}); 

hereと同様です。

+0

これもここによく書かれています:http://stackoverflow.com/a/5721762/277303 –

5

この回答は、@ musefanの回答の改善です。

グローバル変数を避けてください。フォーム内のデータを維持した方がよい:

$('button[type=submit]').click(function (e) { 
    var button = $(this); 
    buttonForm = button.closest('form'); 
    buttonForm.data('submittedBy', button); 
}); 

そして、ちょうどそれを得るハンドラを提出中:

$('#my-form').submit(function (e) { 
    var form = $(this); 
    var submittedBy = form.data('submittedBy'); 
    if(submittedBy.val() == 1) { 
     // Any code here... 
    } 
}); 

フォーム「を入力し」打つことで提出することができます。回避するにはnullsubmittedBy変数:

var submittedBy = form.data('submittedBy') || form.find('button[type=submit]:first'); 
+0

これは実際に私にとってはうまくいかないようです。ボタンの 'click'ハンドラはフォームの' submit'ハンドラのために無視されています。 –

+0

* facepalm *無視。ではなく

関連する問題