jQuery を使用しており、common.js ファイルにこのコードがあります。
このコードは、ユーザーがページの任意の場所で Enter キーを押すと、submit
またはボタンを起動します。next
Cancel
ボタンとSubmit
ボタンに2 つの異なる CSS クラスを使用しています。これらは.btn
クラスであり、すべてのNext
ボタンがその.back
クラスを使用します。
このコードは、Internet Explorer、FireFox、および Chrome で正常に機能します。苦労しているのはSafariだけです。ユーザーがフォーカスしCancel
てから押すEnter
と、フォームはキャンセルされずに送信されます。
誰かがこれに対する解決策を持っていますか? 私は多くのことを試しましたが、何もうまくいきません。
JSP コードを変更できないため、Safari 固有のソリューションまたはすべてのブラウザーで機能するソリューションをお持ちの場合はお知らせください。
前もって感謝します。
// Common.js
$("form *").live('keypress', function (e) {
if ($(this).parents('form').find('button[type=submit].btn, input
type=submit].btn').length <= 0) {
return true;
}
if ($(this).parents('form').find('textarea').is(":focus")) {
alert(' Function Call ');
return true;
} * * *
if ($(this).parents('form').find('.back').is(":focus")) {
return true;
} * * *
if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
$(this).parents('form').find('button[type=submit].btn, input
[type=submit].btn').click();
return false;
}
});
// test.jsp
<div class="back-link">
<div class="back-btn-wrap">
<html:cancel styleClass="back" onclick="bCancel=true">cancel</html:cancel>
</div>
<div class="btn-wrap">
<html:submit styleClass="btn" property="submitNext"> Submit / Next</html:submit>
</div>
</div>