値にリンクがあるHTML入力があります。
<input type = 'text' value = 'http://www.link.com' id = 'link' />
特定のイベントで値を変更するためにjQueryを使用しています。
$('#link').val('new value');
上記のコードはテキストボックスの値を変更しますが、コードの値は変更しません(値= 'http://www.link.com'は変更されません)。変更するには、値= ''も必要です。
値にリンクがあるHTML入力があります。
<input type = 'text' value = 'http://www.link.com' id = 'link' />
特定のイベントで値を変更するためにjQueryを使用しています。
$('#link').val('new value');
上記のコードはテキストボックスの値を変更しますが、コードの値は変更しません(値= 'http://www.link.com'は変更されません)。変更するには、値= ''も必要です。
回答:
attr
代わりに使用してください。
$('#link').attr('value', 'new value');
.html()
場合、.val('new value')
またはattr('value', 'new value')
... を使用しても問題はありませんが、同じ古い値が残ります:(
valueプロパティを変更しても、は変更されませんdefaultValue
。コード(.html()
またはで取得innerHTML
)では、value属性にはdefaultValue
valueプロパティではなくが含まれます。
リカルドの答えを少し拡張する:https : //stackoverflow.com/a/11873775/7672426
http://api.jquery.com/val/#val2
val()について
このメソッドを使用して(またはネイティブのvalueプロパティを使用して)値を設定しても、changeイベントは送出されません。このため、関連するイベントハンドラーは実行されません。それらを実行したい場合は、値を設定した後に.trigger( "change")を呼び出す必要があります。
<script src="//code.jquery.com/jquery.min.js"></script>
<script>
function changes() {
$('#link').val('new value');
}
</script>
<button onclick="changes()">a</button>
<input type='text' value='http://www.link.com' id='link'>
私にとっての問題は、このフィールドの値の変更が機能しないことでした:
$('#cardNumber').val(maskNumber);
上記の解決策はどれもうまくいかなかったので、さらに調査したところ、次のことがわかりました。
DOMレベル2のイベント仕様によれば、変更イベントは、コントロールが入力フォーカスを失い、フォーカスを得てからその値が変更されたときに発生します。つまり、変更イベントは、ユーザーの操作による変更時に発生するように設計されています。プログラムによる変更では、このイベントは発生しません。
解決策は、トリガー関数を追加して、次のように変更イベントをトリガーすることです。
$('#cardNumber').val(maskNumber).trigger('change');
一意でないIDを持つ複数の要素を再確認してください!これが、foreachループとIDの重複に関する私の状況でした。
in the code
ですか?ページの元の(したがって、変更されていない)ソースを見ていますか?