複数の小さなフォームがあるページがあります。各フォームには、データなしステータスを返す URL にフォームを送信する onchange 関数を持つ 1 つの入力フィールドがあります。
ユーザーが送信ボタンしかない小さなフォームをクリックするまで、フォームを次々と送信して、問題なく動作します。このクリックが機能し、ただし、前のフィールドの変更を放棄すると、その onchange が起動しなくなります変更された関数の下部にあるクリックは失敗します (まだ firebug トレースを理解しようとしています)。
どうしたの?私の構造の修正はありますか?
アップデート:
最初に、送信のアクションを単純に遅らせようとしましたが、うまくいきませんでした。
を非表示にし、一連の「イベント」に を追加して、実際の送信が行われる前にフォーカスが停止するようにしました。以下のコードが更新されました。したがって、質問は次のようになります。
これは可能な限り簡単ですか?
脚本:
$(function() {
$('input,select').change(changed);
});
function changed(){
...
$(this).parents('form').find(':submit').click();
}
function doSubmit(elt, id)
{
$(elt).focus();
setTimeout(function(){
$(id).click();
}, 400);
}
小さいフォームの 1 つ:
<form class="clean" method="POST" action="QuoteProApp.php">
<input type="submit" value="field" name="btn_update" style="display: none;">
<input type="hidden" value="000242" name="quote_id">
<input type="text" maxlength="15" size="3" value="" name="q[cost][4][1][unit]">
</form>
問題のあるクリックは次の形式になります。
<form class="clean" method="POST" action="QuoteProApp.php">
<input type="hidden" value="000242" name="quote_id">
<input type='button' name='btn_close' value='Close' onclick='doSubmit(this,"#CLOSE");'>
<input id='CLOSE' type='submit' name='btn_close' value='Close' style='display:none;'>
</form>