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 :(

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');

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


26

Praktik terbaik adalah menggunakan identifikasi secara langsung:

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


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');


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]')

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.