ご挨拶
jquery disable on submit プラグインを使用していますが、問題があります。送信ボタンを無効にすると、サーバーに戻されないため、どのボタンが押されたかわかりません。これは正常ですか?私にできることはありますか?
私は自分のウェブサイトを改造したくないので、どのボタンが押されたかを知るためにフォーム送信時に変数を設定する必要があります。
何か案は ?
ご挨拶
jquery disable on submit プラグインを使用していますが、問題があります。送信ボタンを無効にすると、サーバーに戻されないため、どのボタンが押されたかわかりません。これは正常ですか?私にできることはありますか?
私は自分のウェブサイトを改造したくないので、どのボタンが押されたかを知るためにフォーム送信時に変数を設定する必要があります。
何か案は ?
このメソッドは、ボタンを無効にする代わりに非表示にし、送信ボタンが無効になったように表示するために、無効な <button> タグをプログラムで挿入します。よく働く。
もっとシンプルに:)
var formid="#id-form-if-exists"; //Put here the id if exists
$("form"+formid).submit(function(){$("form"+formid+" input").attr("disabled",false);});
うん
jQueryフォーラムで見つけた回避策は次のとおりです。
<script type="text/javascript">
$(document).ready(function() {
$("#sendSearch").click(function() {
$('#loadingDiv').show();
$('#sendSearch').attr("disabled", "disabled");
// these two lines are the workaround
this.form.submit();
return true;
});
});
</script>
jquery 経由で送信し、後でボタンを無効にすることができます。
<input type="submit" value="do it!" onclick="$('#mainform').submit(); $(this).attr('disabled','disabled' ); $('#pleasewait').show();" />
編集: form.submit() が非同期ではないことを忘れていました。代わりに ajax リクエストを実行できます。
$.ajax({
url: "someurl",
type:"POST",
cache: false,
dataType: "json",
success:gotIt,
async:true,
timeout:240000,
error:ajaxError,
data:$("#mainform").serialize()
});
または、ボタンを .hide() するか、クリックした後に機能しない onClick() ハンドラーを設定し、無効に見えるようにスタイリングすることができます。