Saya sudah mencoba mengatur nilai bidang tersembunyi dalam bentuk menggunakan jQuery, tetapi tidak berhasil.
Berikut adalah contoh kode yang menjelaskan masalahnya. Jika saya menyimpan tipe input ke "teks", ia bekerja tanpa masalah. Tetapi, mengubah tipe input menjadi "tersembunyi", tidak berfungsi!
<html>
<head>
<script type="text/javascript" src="jquery.js">
</script>
<script type="text/javascript">
$(document).ready(function() {
$("button").click(function() {
$("input:text#texens").val("tinkumaster");
});
});
</script>
</head>
<body>
<p>
Name:
<input type="hidden" id="texens" name="user" value="texens" />
</p>
<button>
Change value for the text field
</button>
</body>
</html>
Saya juga mencoba solusi berikut, dengan mengatur tipe input ke "teks" dan kemudian menggunakan gaya "display: none" untuk kotak input. Tapi, ini juga gagal! Tampaknya jQuery memiliki beberapa masalah pengaturan bidang input tersembunyi atau tidak terlihat.
Ada ide? Apakah ada solusi untuk ini yang benar-benar berfungsi?
sumber
val()
berfungsi dengan baik pada input tersembunyi, mengubah nilai dari "tidak diubah" menjadi "diubah". Saya telah merevisi contoh untuk menyertakan kode yang Anda tempel di atas, dengan peringatan untuk mengonfirmasi perubahan nilai: jsbin.com/elovo/2/editJika Anda kesulitan mengatur nilai bidang tersembunyi karena Anda memberikan ID padanya, ini solusinya:
Alih-alih
$("#hidden_field_id").val(id)
lakukan saja$("input[id=hidden_field_id]").val(id)
. Tidak yakin apa bedanya, tetapi berhasil.sumber
Akhirnya, saya telah menemukan solusi dan ini sederhana:
Bekerja seperti pesona. Tidak tahu mengapa jQuery tidak kembali ke ini.
sumber
type="radio"
. Saya malas melaporkan masalah, terutama mengingat saya memecahkan masalah ini 4 tahun yang lalu. Saya juga terkoyak jika harus diperbaiki di jQuery - mungkin ini diterapkan sedemikian rupa untuk melindungi kiddies jQuery dari diri mereka sendiri? Siapa tahu ...Saya memiliki masalah yang sama. anehnya google chrome dan mungkin yang lain (tidak yakin) tidak suka
(tidak ada perubahan)
(tidak ada perubahan)
tapi ini berhasil !!!!
PERUBAHAN !!
PERUBAHAN !!
harus menjadi "string"
sumber
.val(' 0')
, yang diuraikan dengan benarparseInt
dalam Javascript danint()
Python, backend saya.bekerja untuk saya, ketika keduanya
maupun
melakukan.
sumber
.val tidak bekerja untuk saya, karena saya meraih sisi server atribut nilai dan nilai tidak selalu diperbarui. jadi saya menggunakan:
Semoga ini bisa membantu seseorang.
sumber
Sebenarnya, ini adalah masalah yang berkelanjutan. Sementara Andy benar tentang sumber yang diunduh, .val (...) dan .attr ('value', ...) tampaknya tidak benar-benar mengubah html. Saya pikir ini adalah masalah javascript dan bukan masalah jquery. Jika Anda menggunakan pembakar bahkan Anda akan memiliki pertanyaan yang sama. Meskipun tampaknya jika Anda mengirimkan formulir dengan nilai yang dimodifikasi, maka html tidak akan berubah. Saya mengalami masalah ini mencoba membuat pratinjau cetak dari formulir yang dimodifikasi (melakukan [formulir] .html ()) itu menyalin semuanya dengan baik, termasuk semua perubahan kecualinilai berubah. Jadi, pratinjau cetak modal saya agak tidak berguna ... solusi saya mungkin harus 'membangun' formulir tersembunyi yang berisi nilai-nilai yang telah mereka tambahkan, atau menghasilkan pratinjau secara independen dan membuat setiap modifikasi yang dilakukan pengguna juga mengubah pratinjau. Keduanya tidak optimal, tetapi kecuali seseorang mengetahui mengapa perilaku pengaturan nilai tidak mengubah html (dalam DOM saya berasumsi) itu harus dilakukan.
sumber
Saya mengalami masalah yang sama, dan saya menemukan apa yang salah. Saya mendefinisikan HTML sebagai
Membaca nilai formulir di server selalu menghasilkan email sebagai kosong. Setelah menggaruk-garuk kepala (dan banyak pencarian), saya menyadari kesalahan itu tidak mendefinisikan form / input dengan benar. Pada memodifikasi input (seperti yang ditunjukkan berikutnya), itu berfungsi seperti pesona
Menambahkan ke utas ini seandainya orang lain memiliki masalah yang sama.
sumber
Dalam kasus saya, saya menggunakan non-string (integer) sebagai parameter val () yang tidak berfungsi, triknya sesederhana
sumber
Menggunakan
val()
tidak berhasil untuk saya. Saya harus menggunakannya di.attr()
mana-mana. Saya juga memiliki berbagai jenis input dan harus cukup eksplisit dalam hal kotak centang dan pilih menu.Perbarui bidang teks
Perbarui gambar di sebelah input file
Perbarui boolean
Perbarui pilih (dengan nomor atau string)
sumber
Gotcha lain di sini menyia-nyiakan waktu saya, jadi saya pikir saya akan memberikan tip. Saya memiliki bidang tersembunyi yang saya beri id. dan
[]
tanda kurung dalam nama (karena digunakan dengan struts2) dan pemilih$("#model.thefield[0]")
tidak akan menemukan bidang tersembunyi saya. Mengganti nama id untuk tidak menggunakan periode dan tanda kurung menyebabkan pemilih mulai bekerja. Jadi pada akhirnya saya berakhir dengan idmodel_the_field_0
sebagai gantinya dan pemilih bekerja dengan baik.sumber
$("#model.thefield[0]")
sedang ditafsirkan sebagai: elemen denganid
sama denganmodel
, cssclass
darithefield
dan beberapaattribute
disebut0
... Jika Anda ingin menggunakan karakter-karakter dalamid
penggunaan Anda pendekatan yang disarankan oleh Chuck Callebs dalam jawabannya . Dalam HTML5,id
mungkin string apa pun yang tidak kosong dan tidak mengandung karakter spasi ( referensi ).Menggunakan ID:
Menggunakan kelas:
sumber
Jika Anda mencari haml maka ini adalah jawaban untuk bidang tersembunyi untuk menetapkan nilai ke bidang tersembunyi
Di jquery Anda, konversikan nilainya menjadi string dan kemudian tambahkan menggunakan properti attr di jquery. Semoga ini juga berfungsi dalam bahasa lain juga.
sumber
sumber
Cukup gunakan sintaks di bawah get and set
DAPATKAN
di sini variabel akan menyimpan nilai hiddenfield (selectindex)
Sisi server
SET
sumber
Siapa pun yang berjuang dengan ini, ada cara "inline" yang sangat sederhana untuk melakukan ini dengan jQuery:
Ini menetapkan nilai bidang tersembunyi saat teks diketik ke dalam input yang terlihat menggunakan event onChange. Bermanfaat (seperti dalam kasus saya) tempat Anda ingin meneruskan nilai bidang ke formulir "Pencarian Lanjutan" dan tidak memaksa pengguna untuk mengetik ulang permintaan pencarian mereka.
sumber