jQuery mengubah nilai teks input

155

Saya tidak dapat menemukan pemilih yang tepat untuk:

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

Saya ingin mengubah nilainya menjadi = 000000. Saya membutuhkan pemilih untuk menemukan "nama" bukan id dari input teks.

Tidakkah ini bekerja ?:

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

Solusi yang disajikan tidak bekerja, apa masalahnya dengan ini?

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

Data JSON berfungsi dengan benar; idenya adalah untuk meneruskan nilai JSON ke dalam nilai teks input formulir. Tapi tidak berhasil :(

Joricam
sumber

Jawaban:

308

tidak, Anda perlu melakukan sesuatu seperti:

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

tetapi Anda harus benar-benar menggunakan ID unik jika Anda bisa.

Anda juga bisa lebih spesifik, seperti:

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

EDIT:

lakukan ini untuk menemukan input Anda berdasarkan atribut nama:

$('input[name=sitebg]').val('000000');
Jason
sumber
Saya akan menerima awnser ini, dapatkah Anda merekomendasikan buku / tutorial yang bagus (lebih disukai sebuah buku) tentang jquery di mana saya benar-benar dapat belajar tentang penyeleksi? terutama bentuk pemilih?
Joricam
7
sejauh ini ini adalah hal terbaik di internet: futurecolors.ru/jquery
Jason
@Jason Tautan rusak, apa judul buku itu?
oyalhi
@ loyalhi oh tidak! Maafkan saya. komentar itu 5 tahun, jadi saya kira mereka mencatatnya :(
Jason
@ Alasan Ya, sayangnya. Namun, apakah Anda ingat judul buku itu?
oyalhi
31

Cara jQuery untuk mengubah nilai pada bidang input teks adalah:

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

ini akan mengubah atribut valueuntuk elemen DOM dengan ID #colorpickerField1dari #EEEEEEmenjadi#000000

Vladimir Kroz
sumber
26

Praktik terbaik adalah menggunakan identifikasi secara langsung:

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

MGE
sumber
sederhana dan terbaik :)
MRRaja
2
Mengapa ini berhasil tetapi document.getElementById("#id").value = 'xxx';tidak berhasil untuk saya? Itu tidak mengubah nilai teks yang muncul, hanya properti nilai elemen DOM.
user3494047
1
Anda sudah menggunakan metode ById, # untuk notasi css. Singkirkan.
Scott Chu
9

Saat mengatur nilai elemen baru, Anda perlu perubahan pemicu panggilan.

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

Richelly Italo
sumber
Ini memperbaiki masalah bagi saya di mana penangan event perubahan dipanggil dua kali; sekali dengan nilai baru dan sekali lagi dengan [attr = val]
Peter Lenjo
3

Hanya menambahkan jawaban Jason, the . pemilih hanya untuk kelas. Jika Anda ingin memilih sesuatu selain elemen, id, atau kelas, Anda harus membungkusnya dengan tanda kurung siku.

misalnya

$('element[attr=val]')

Robert Ingrum
sumber