変更のためのフォーム入力要素を監視しています(ページ終了時に保存されていないフォームの変更をユーザーに警告するため)。jQuery変更イベント(フォームの更新を監視する)
jQueryの変更イベントは、特定の入力要素がフォーカスを失った場合(たとえば、テキストボックス)にのみトリガされることは理解できます。
これは、ユーザーが1つのテキストボックスを編集してから終了しようとしたため、テキストボックスの変更イベントが発生しないため、問題があります。この問題を克服する方法について
var formChanges = {
override: false,
changed: false,
checkChanges: function() {
if(!formChanges.override) {
if(formChanges.changed) {
return "There are currently unsaved changes.";
}
}
},
init: $(document).ready(function() {
$('#checkThis').submit(function() { //'checkThis' is the form ID
formChanges.override = true;
});
$(':input').change(function() {
formChanges.changed = true;
});
})
}
window.onbeforeunload = formChanges.checkChanges;
任意のアイデア:ここ
は、私が得ているどのくらいいるのですか?
私は、すべてのキー入力は、必ずしもテキスト(矢印キー)での変化を意味するとは思いません。 –
もちろん、何かが変わったかどうか知ることは、私が行ったことよりはるかに複雑です(あなたは実際の値を本来の値と照らし合わせて、文字を追加し、それを削除しても入力を変更しません)。私の答えは、正しいイベントを選ぶことだけでした。私は、キー入力を使用し、テキスト入力を変更しないでください。 –
この解決策がそのままあれば十分だと思います。ありがとう! –