2

jQuery ですべての送信ボタンをクラスボタンで処理し、それぞれをクラス ボタンでアンカー要素に変換します。

$("input.button").each(function(i) {

    var anchorButton = $("<a class='"+this.className+"' href='#'>"+this.value+"</a>")



    anchorButton.click(function(eventObject) {

        $(this).blur().prev("input.hidden").click();

        return false;

    });



    $(this)

        .after(anchorButton)

        .addClass("hidden")

        .removeClass("button pill-left pill-center pill-right");

});

その後、クロスブラウザーで CSS を使用してアンカー要素のスタイルを設定できます。1つだけ問題があります。フォーム入力要素で Enter キーを押すたびに、フォームが送信されません。ただし、送信ボタンを非表示にすると、再び機能します。結論として、送信ボタンを表示しない限り、フォームを送信するための Enter/Return キーを取得できません (display != none)。

送信ボタンが非表示のときに Enter キーを押したときにフォームを送信するにはどうすればよいですか?

4

4 に答える 4

3
$("input.button").keydown(function(event) {
   if(event.keyCode == 13)
      $("...find the form...").submit();
});

これはうまくいくはずです。

これを試さない場合:

   $("..find the input button you hide..").css('position', 'absolute')
         .css('top', '-1000px');

visibility: hidden可視性を非表示に設定すると、ボタンは依然として「スペースを占有する」ため、これは提案されたソリューションよりも優れています。

于 2010-08-22T19:39:01.113 に答える
1

formsubmit 属性を含め、HTML で通常の属性を使用するだけactionです。次に、ブラウザのデフォルトの動作が得られ、フォーム内で押すEnterと送信されます。そうすれば、jQuery を使用してすべての送信ボタンにイベント ハンドラーをバインドする必要はありません。

このJSBinでテストできます。

于 2010-08-22T19:39:03.420 に答える
-1

表示を非表示にするのではなく、表示を非表示に変更してみましたか?

于 2010-08-22T19:35:42.560 に答える
-1

visibility=hidden を試してください

于 2010-08-22T19:37:19.390 に答える