3

jquery .on()submitを使用して、このフォームで押された入力ボタンを検出するにはどうすればよいですか?

<form name="input" action="none" method="post">
 <input type="text" name="user">
 <input id="submit" type="submit" value="Submit">
 <input id="cancel" type="submit" value="Cancel">
</form>​​​​​​​​​​​​​​​



$('body').on('submit', 'form', function(e) {
      console.log($(this).attr("value"));
      return false;})

jsfiddleの例はこちらhttp://jsfiddle.net/dansalmo/suZHg/

私は多くの場所を調べ、.on()メソッド内で入力送信ボタンの値を検出するためのさまざまな方法を試しましたが、取得できません。

私の例では、$(this).attr( "value")と$(this).val()が未定義で表示されます

次に、ajaxを使用してフォームを送信できるようにしたいので、ボタンを検出するだけではこの質問のポイントにはなりません。。(on)submitを使用してそれを行う方法がない場合は、フォームの送信を伴わない代替のボタン検出方法で応答するのではなく、それを知っておくと役立ちます。

4

5 に答える 5

4

送信ハンドラーからこの情報を取得する方法がわかりませんが、ボタンクリックイベントから情報を取得して、送信イベントで使用できます。

$('body').on('submit', 'form', function(e) {
      console.log($(this).data('clicked'));
      return false;
});
$('form').on('click', 'input[type=submit]', function(e) {
      $(this.form).data('clicked', this.value);
});

http://jsfiddle.net/suZHg/15/

于 2012-11-02T19:44:59.033 に答える
1

送信ボタンのクリックイベントをインターセプトしてから、フォームの送信を手動でトリガーし、元のボタンへの参照を渡すことができます。

        $("input:submit").on("click", function () {
            $("form[name='input']").trigger("submit", this);
            return false;
        });

        $('body').on('submit', 'form', function (e, button) {
            console.log($(button).val());
            return false;
        })
于 2012-11-02T19:43:31.107 に答える
0
$("input[type='submit']").click(function(e) {
      console.log($(this).val());
      return false;
});
于 2012-11-02T19:15:38.720 に答える
-1

$(this)formはhere に対応します。

そして、button提出したものではありません

これを試して

$('body').on('click', 'input[type="submit"]', function(e) {
    e.preventDefault();
    console.log($(this).attr('value'));
    return false;
})​
于 2012-11-02T19:15:50.267 に答える
-1
$('input:submit').click(function(){alert(this.id); return false;});
于 2012-11-02T19:19:29.750 に答える