Saya ingin meneruskan parameter (yaitu string) ke fungsi Onclick. Untuk saat ini, saya melakukan ini:
'<input type="button" onClick="gotoNode(' + result.name + ')" />'
dengan result.name misalnya sama dengan string "Tambah". Ketika saya mengklik tombol ini, saya memiliki kesalahan yang mengatakan bahwa Add tidak didefinisikan. Karena fungsi ini bisa berfungsi dengan sempurna dengan parameter numerik, saya menganggap itu ada hubungannya dengan simbol "" dalam string. Adakah yang pernah mengalami masalah ini sebelumnya?
javascript
html
JasperTack
sumber
sumber
Jawaban:
Sepertinya Anda sedang membangun elemen DOM dari string. Anda hanya perlu menambahkan beberapa kutipan di sekitar result.name:
Anda harus benar-benar melakukan ini dengan metode DOM yang tepat.
result
Perlu diketahui bahwa jika ini adalah loop atau sesuatu, akan berubah sebelum acara menyala dan Anda harus membuat gelembung cakupan tambahan untuk membayangi variabel yang berubah.sumber
Beberapa kekhawatiran bagi saya sehubungan dengan menggunakan pelarian string di onClick dan ketika jumlah argumen bertambah, itu akan menjadi rumit untuk dipertahankan.
Pendekatan berikut akan memiliki satu hop - Pada klik - ambil kontrol ke metode penangan dan metode penangan, berdasarkan pada objek acara, dapat mengurangi peristiwa klik dan objek yang sesuai.
Ini juga menyediakan cara yang lebih bersih untuk menambahkan lebih banyak argumen dan lebih fleksibel.
Pada lapisan javascript:
Keuntungannya di sini adalah kita dapat memiliki banyak argumen (dalam contoh di atas, data-arg1, data-arg2 ....) sesuai kebutuhan.
sumber
invoke
tidak dipanggil ketika Anda mengklik tombolJSON.stringify(obj)
dalam HTML danJSON.parse(event.target.getAttribute('data-arg'))
di layer JavaScriptSaya sarankan tidak menggunakan HTML
onclick
handler, dan menggunakan sesuatu yang lebih umum sepertidocument.getElementById
.HTML:
JavaScript:
sumber
onclick
bukan fungsi, ini properti yang harus Anda tetapkan fungsi:....onclick = function() {...};
Saya menduga, Anda membuat tombol menggunakan JavaScript itu sendiri. Jadi, kesalahan dalam kode Anda adalah itu, akan ditampilkan dalam formulir ini
Pada kondisi saat ini,
add
akan dianggap sebagai pengenal seperti variabel atau panggilan fungsi. Anda harus menghindari nilai seperti inisumber
Ini adalah cara yang bagus dan rapi untuk mengirim nilai atau objek.
sumber
Coba ini..
HTML:
JavaScript:
Catatan: pastikan mengirimkan argumen antara tanda 'seperti (' a1 ') dalam kode html
sumber
Anda juga menggunakan simbol aksen kubur (`) dalam string
coba:
untuk informasi lebih lanjut, kunjungi MDN dan Stackoverflow
Dengan Chrome, Edge, Firefox (Gecko), Opera, dukungan Safari, tetapi tidak mendukung Internet Explorer.
sumber
jika tombol Anda dihasilkan secara dinamis:
Anda dapat mengirimkan parameter string ke fungsi javascript seperti kode di bawah ini:
Saya melewati 3 parameter di mana yang ketiga adalah parameter string berharap ini bisa membantu.
sumber
Diedit: Jika persyaratannya adalah untuk referensi objek global (js) dalam kode HTML Anda, Anda dapat mencoba ini. [Jangan gunakan tanda kutip ('atau ") di sekitar variabel]
Referensi biola .
Javascript:
HTML:
sumber
Beberapa parameter:
sumber
Untuk melewati beberapa parameter, Anda dapat melemparkan string dengan menggabungkannya dengan nilai ASCII seperti, untuk tanda kutip tunggal kita dapat menggunakan '
sumber
Ini adalah solusi Jquery yang saya gunakan.
Jquery
HTML
sumber
Anda dapat memberikan referensi atau nilai string cukup masukkan fungsi di dalam koma doube "" di bawah snapshot
sumber
Untuk melewati beberapa parameter, Anda dapat melemparkan string dengan menggabungkannya dengan nilai ASCII seperti, untuk tanda kutip tunggal yang dapat kita gunakan
'
parameter yang sama yang dapat Anda lewati ke
onclick()
Dalam sebagian besar kasus ini berfungsi dengan setiap browser.sumber
jika digunakan untuk pembuatan satu set tombol dengan parameter penangan yang berbeda. https://www.w3schools.com/js/js_function_closures.asp
jika kita lakukan:
kemudian fungsi foo mulai setelah setiap halaman pembaruan.
jika kita lakukan:
lalu untuk semua tombol yang dibuat dalam loop, nilai terakhir dari parameter "result.name"
sumber
jika Anda menggunakan asp, Anda dapat menggunakan javascript:
HTML:
Javascript:
sumber
Jika Anda menambahkan tombol atau tautan secara dinamis dan menghadapi masalah maka ini dapat membantu. Saya dipecahkan dengan cara ini.
Saya baru mengenal HTML, JQuery dan JS. Jadi mungkin kode saya tidak akan dioptimalkan atau sintaksis, tetapi itu berfungsi untuk saya.
sumber
Di Razor, Anda dapat mengirimkan parameter secara dinamis: @ Model.UnitNameVMs [i] .UnitNameID
sumber
Anda bisa menggunakan ini,
ini bekerja untuk saya
sumber
sumber
Berikut ini bekerja dengan baik untuk saya,
sumber
Anda dapat menggunakan kode ini dalam metode klik tombol Anda:
sumber