jQuery変更入力テキスト値


155

正しいセレクタが見つかりません:

<input maxlength="6" size="6" id="colorpickerField1" name="sitebg" value="#EEEEEE" type="text">

値を= 000000に変更します。テキスト入力のIDではなく「名前」を見つけるためのセレクターが必要です。

これはうまくいきませんか?:

$("text.sitebg").val("000000");

提示された解決策は機能しません、これの何が問題ですか?

$.getJSON("http://www.mysitehere.org/wp-content/themes/ctr-theme/update_genform.php",function(data) {
    $("#form1").append(data.sitebg);
    $('input.sitebg').val('000000');
});

JSONデータは正しく機能しています。このアイデアは、後でJSON値をフォーム入力テキスト値に渡すことです。しかし動作していません:(

回答:


308

いいえ、あなたは次のようなことをする必要があります:

$('input.sitebg').val('000000');

ただし、可能であれば、実際には一意のIDを使用する必要があります。

次のようなより具体的なものを取得することもできます。

$('input[type=text].sitebg').val('000000');

編集:

これを実行して、name属性に基づいて入力を検索します。

$('input[name=sitebg]').val('000000');

私はこのオーナを受け入れますが、セレクタについて本当に学ぶことができるjqueryについての良い本/チュートリアル(できれば本)をお勧めできますか?特にフォームセレクター?
Joricam、2011

7
これはインターネット上で最も優れた機能です。futurecolors.ru
Jason

@ジェイソンリンクが壊れています。本のタイトルを教えてください。
oyalhi

@oyalhiああ!申し訳ありません。そのコメントは5歳なので、彼らはそれを取り下げたと思います:(
Jason

@ジェイソンはい、残念です。しかし、あなたはその本のタイトルを覚えていますか?
oyalhi

31

テキスト入力フィールドの値を変更するjQueryの方法は次のとおりです。

$('#colorpickerField1').attr('value', '#000000')

これは、属性を変更しますvalueIDを持つDOM要素の #colorpickerField1から#EEEEEE#000000


26

識別を直接使用することがベストプラクティスです。

$('#id').val('xxx');


シンプルで最高の1つ:)
MRRaja 2017年

2
なぜこれがdocument.getElementById("#id").value = 'xxx';機能するのに機能しないのですか?表示されるテキスト値は変更されません。DOM要素のvalueプロパティのみが変更されます。
user3494047

1
すでにByIdメソッドを使用しています。#はCSS表記用です。それを除く。
Scott Chu

9

要素の新しい値を設定するときは、呼び出しトリガーの変更が必要です。

$('element').val(newValue).trigger('change');


これにより、変更イベントハンドラーが2回呼び出される問題が修正されました。1回は新しい値、次に[attr = val]で
Peter Lenjo

3

Jasonの答えに追加すると、.セレクターはクラス専用です。要素、ID、またはクラス以外のものを選択したい場合は、角括弧で囲む必要があります。

例えば

$('element[attr=val]')

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.