入力フィールドのリストがあります。一部は読み取り専用フィールドです。入力フィールドで何かが変更されたときにトリガーする .keyup() イベントを使用しています。ただし、読み取り専用フィールドには影響しません。どういうわけか私はそれらのフィールドも変更したい. 何か助けはありますか?
質問する
8714 次
2 に答える
9
focus
読み取り専用の入力フィールドを呼び出すと、keyup
イベントが発生します。ただし、そのフィールドに入力しても値は変わりません (結局、読み取り専用です)。value
代わりに、その属性の変化をリッスンする必要があるのではないでしょうか?
この回答が示唆するようにinput
、次のことを聞くことをお勧めします。propertyChange
$('input').bind('input propertychange', function() {
// Do something
});
このようにして、入力値が(何らかの手段で)変更されると、通知されます。編集:プログラムで値を変更すると機能しません。この場合、クロスブラウザーで実行可能な唯一の代替手段には、ポーリングが含まれます (たとえば、 this )。より良いオプションは、ビューとモデルを明確に分離しながら、これを自動化するknockout.jsなどのフレームワークを使用することです。ここに例があります。
更新:削除された回答でコメントを読んだことを思い出します。入力の値をプログラムで設定していると述べていますが、それは正しいですか? (10,000 担当者の一部のユーザーはそれを元に戻せますか?) その場合、値を変更しているコードでリスナーを直接トリガーしないのはなぜですか?
$(link).click(function() {
$(readonlyInput)
.val("some val") // Update the value
.trigger('keyup'); // Trigger the listener
});
于 2012-08-13T05:40:03.010 に答える