111

値にリンクを含むHTML入力があります。

<input type = 'text' value = 'http://www.link.com' id = 'link' />

jQueryを使用して特定のイベントの値を変更しています。

$('#link').val('new value');

上記のコードはテキストボックスの値を変更しますが、コードの値は変更しません(value ='http://www.link.com'は変更されません)。値=''も変更する必要があります。

4

8 に答える 8

206

attr代わりに使用してください。
$('#link').attr('value', 'new value');

デモ

于 2012-08-08T21:54:02.087 に答える
15

valueプロパティを変更しても、は変更されませんdefaultValue。コード(.html()またはで取得innerHTML)では、value属性にはdefaultValuevalueプロパティではなく、が含まれます。

于 2012-08-08T21:53:53.617 に答える
8

リカルドの答えを少し拡張するには:https ://stackoverflow.com/a/11873775/7672426

http://api.jquery.com/val/#val2

val()について

このメソッドを使用して(またはネイティブ値プロパティを使用して)値を設定しても、変更イベントはディスパッチされません。このため、関連するイベントハンドラーは実行されません。それらを実行したい場合は、値を設定した後に.trigger( "change")を呼び出す必要があります。

于 2017-03-19T11:36:03.403 に答える
3
$('#link').prop('value', 'new value');

説明:AttrはjQuery 1.6で動作しますが、jQuery1.6.1以降は変更されています。ほとんどの場合、prop()はattr()が行っていたことを実行します。コード内でattr()の呼び出しをprop()に置き換えると、通常は機能します。Attrは、ページの読み込み時にhtmlで定義された要素の値を提供し、propは、jQueryを介して変更された要素の更新された値を提供します。

于 2020-08-25T21:20:30.340 に答える
2

これは私に起こった可能性のあるシナリオです。それが誰かを助けてくれるなら、それは素晴らしいことです。コードのどこかで、関数を使用してすべてのテキストボックスの値を表示する前にクリアする複雑なアプリを作成しました。しばらくして、jquery val('value')を使用してテキストボックスの値を設定しようとしましたが、その直後にClearAllInputsメソッドを呼び出したことに気づきませんでした。そのため、これも発生する可能性があります。

于 2016-12-19T13:53:03.243 に答える
0

私の同様の問題は、セレクターに特殊文字(ピリオドなど)が含まれていることが原因でした。

修正は、特殊文字をエスケープすることでした:

$("#dots\\.er\\.bad").val("mmmk");
于 2018-02-01T19:58:43.683 に答える
-1

私にとっての問題は、このフィールドの値を変更しても機能しないことでした。

$('#cardNumber').val(maskNumber);

上記の解決策はどれも私にはうまくいかなかったので、私はさらに調査して見つけました:

DOMレベル2イベント仕様によると:変更イベントは、コントロールが入力フォーカスを失い、フォーカスを取得してからその値が変更されたときに発生します。つまり、変更イベントは、ユーザーの操作による変更時に発生するように設計されています。プログラムによる変更によって、このイベントが発生することはありません。

解決策は、トリガー関数を追加して、次のように変更イベントをトリガーすることでした。

$('#cardNumber').val(maskNumber).trigger('change');
于 2020-04-14T09:52:42.303 に答える
-2
<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'>
于 2014-02-27T07:45:55.417 に答える