Saya memiliki input HTML dengan tautan di nilainya.
<input type = 'text' value = 'http://www.link.com' id = 'link' />
Saya menggunakan jQuery untuk mengubah nilai pada acara tertentu.
$('#link').val('new value');
Kode di atas mengubah nilai kotak teks tetapi tidak mengubah nilai dalam kode (value = 'http://www.link.com' tetap tidak berubah). Saya membutuhkan nilai = '' untuk berubah juga.
javascript
jquery
Lukas
sumber
sumber
in the code
? Apakah Anda melihat sumber halaman asli (dengan demikian, tidak dimodifikasi)?Jawaban:
Gunakan
attr
sebagai gantinya.$('#link').attr('value', 'new value');
demo
sumber
setAttribute
atau jQueryattr
Anda juga akan memengaruhi nilai elemen DOM: jsfiddle.net/a8SxF/1.html()
, maka akan tetap ada nilai lama yang sama, tidak masalah, jika Anda menggunakan.val('new value')
atauattr('value', 'new value')
... :(Mengubah properti nilai tidak mengubah
defaultValue
. Dalam kode (diambil dengan.html()
atauinnerHTML
) atribut nilai akan berisidefaultValue
, bukan properti nilai.sumber
untuk sedikit memperluas jawaban Ricardo: https://stackoverflow.com/a/11873775/7672426
http://api.jquery.com/val/#val2
tentang val ()
sumber
Ini hanya skenario yang mungkin terjadi pada saya. Nah jika itu membantu seseorang maka hebat: Saya menulis aplikasi rumit yang di suatu tempat di sepanjang kode saya menggunakan fungsi untuk menghapus semua nilai kotak teks sebelum menunjukkannya. Beberapa waktu kemudian saya mencoba untuk menetapkan nilai kotak teks menggunakan jquery val ('nilai') tetapi saya tidak memperhatikan bahwa setelah itu saya memanggil metode ClearAllInputs .. jadi, ini juga bisa terjadi.
sumber
Masalah serupa saya disebabkan oleh karakter khusus (misalnya titik) di pemilih.
Perbaikannya adalah melarikan diri dari karakter khusus:
sumber
sumber
Bagi saya masalahnya adalah mengubah nilai untuk bidang ini tidak berhasil:
Tidak ada solusi di atas yang berhasil untuk saya, jadi saya menyelidiki lebih lanjut dan menemukan:
Menurut Spesifikasi Peristiwa DOM Level 2: Peristiwa perubahan terjadi saat kontrol kehilangan fokus input dan nilainya telah diubah sejak mendapatkan fokus. Itu berarti bahwa peristiwa perubahan dirancang untuk mengaktifkan perubahan melalui interaksi pengguna. Perubahan terprogram tidak menyebabkan acara ini diaktifkan.
Solusinya adalah menambahkan fungsi pemicu dan menyebabkannya memicu peristiwa perubahan seperti ini:
sumber
Periksa kembali untuk lebih dari satu elemen dengan id non-unik! Itu adalah situasi saya dengan foreach loop dan duplikasi id saya.
sumber