Saya mempunyai borang yang menghantar nilai kepada fungsi.
<TR><TD>Select</TD><TD><select name=k_id> <OPTION value=1 onClick="myfun('10','0.1','1')">Option 1</OPTION> <OPTION value=2 onClick="myfun('20','0.2','2')">Option 2</OPTION> <OPTION value=3 onClick="myfun('30','0.3','3')">Option 3</OPTION> <OPTION value=4 onClick="myfun('40','0.4','4')">Option 4</OPTION> </select>
function myfun(id,h,k,g) { var h_id=document.getElementById('h_id'); h_id.value=id; var hind=document.getElementById('hind'); hind.value=h; var koe=document.getElementById('koe'); koe.value=k; }
Tetapi ia tidak berfungsi jika pengguna memilih pilihan menggunakan kekunci anak panah dan kekunci Enter.
Bagaimana cara saya menghantar nilai yang sesuai kepada myfun() dengan menekan kekunci Enter?
Saya dah cuba:
<OPTION value=1 onClick="myfun('10','0.1','1')" onkeypress="if(event.key == 'Enter') {myfun('10','0.1','1')}">Option 1</OPTION> <OPTION value=1 onClick="myfun('10','0.1','1')" onkeyup = "if(event.keyCode == 13){myfun('10','0.1','1')}">Option 1</OPTION> <OPTION value=1 onClick="myfun('10','0.1','1')" onkeydown = "if(event.keyCode == 13){myfun('10','0.1','1')}">Option 1</OPTION>
Saya pernah cuba menambah onchange untuk memilih elemen pada masa lalu, tetapi mengalami masalah lain. Dan kod yang mengisi senarai pilihan perlu ditulis semula.
Menggunakan
onChange
panggilan akan membawa kepada kod pendua dan idea yang kurang boleh dilaksanakan.Pertimbangkan untuk meletakkan data ke dalam set
data-
supaya anda boleh menggunakan acaradata-
集中,这样您就可以在select
上使用onChange
padaselect
. Acara ini dicetuskan apabila anda menekan dan semasa menggunakan papan kekunci. Jadi tidak perlu menduplikasi kod.Kemudian gunakan
dataset
untuk mendapatkan data daripada nilai baharu:Gunakan acara select.onchange, seperti yang ditunjukkan di bawah: