Chciałbym przekazać parametr (tj. Ciąg) do funkcji Onclick. Na razie robię to:
'<input type="button" onClick="gotoNode(' + result.name + ')" />'
z wynikiem.nazwa na przykład równym ciągowi „Dodaj”. Po kliknięciu tego przycisku pojawia się błąd, który mówi, że Add nie jest zdefiniowany. Ponieważ to wywołanie funkcji działa idealnie z parametrem numerycznym, zakładam, że ma to coś wspólnego z symbolami „” w ciągu. Czy ktoś miał wcześniej ten problem?
javascript
html
JasperTack
źródło
źródło
Odpowiedzi:
Wygląda na to, że budujesz elementy DOM z ciągów. Musisz tylko dodać cytaty wokół wyników. Nazwa:
Powinieneś naprawdę robić to za pomocą odpowiednich metod DOM.
Pamiętaj tylko, że jeśli jest to pętla lub coś,
result
zmieni się przed uruchomieniem zdarzenia i musisz utworzyć dodatkowy bąbelek zasięgu, aby ukryć zmienną zmienną.źródło
Kilka obaw dotyczących używania ciągu znaków ucieczki w onClick i wraz ze wzrostem liczby argumentów, utrzymanie się będzie kłopotliwe.
Poniższe podejście będzie miało jeden przeskok - Po kliknięciu - przejmij kontrolę do metody modułu obsługi, a metoda modułu obsługi, w oparciu o obiekt zdarzenia, może odjąć zdarzenie kliknięcia i odpowiedni obiekt.
Zapewnia również czystszy sposób dodawania większej liczby argumentów i większej elastyczności.
Na warstwie javascript:
Zaletą jest to, że możemy mieć tyle argumentów (w powyższym przykładzie, dane-arg1, dane-arg2 ....), ile potrzeba.
źródło
invoke
nie jest wywoływane po kliknięciu przyciskuJSON.stringify(obj)
wJSON.parse(event.target.getAttribute('data-arg'))
Sugeruję nawet, aby nie używać programów
onclick
obsługi HTML i używać czegoś bardziej powszechnego, takiego jakdocument.getElementById
.HTML:
JavaScript:
źródło
onclick
nie jest funkcją, jest to właściwość, do której należy przypisać funkcję:....onclick = function() {...};
Zgaduję, że tworzysz przycisk za pomocą samego JavaScript. Zatem błąd w kodzie polega na tym, że zostanie wyświetlony w tej formie
W tym obecnym stanie
add
będzie uważany za identyfikator, taki jak zmienne lub wywołania funkcji. Powinieneś uciec przed taką wartościąźródło
Jest to miły i schludny sposób przesyłania wartości lub obiektu.
źródło
Spróbuj tego..
HTML:
JavaScript:
Uwaga: pamiętaj o wysyłaniu argumentów między znakami „”, takimi jak („a1”) w kodzie HTML
źródło
również używasz poważnego symbolu akcentu (`) w ciągu
próbować :
Aby uzyskać więcej informacji, odwiedź MDN i Stackoverflow
Obsługuje Chrome, Edge, Firefox (Gecko), Opera, Safari, ale nie obsługuje Internet Explorera.
źródło
jeśli przycisk jest generowany dynamicznie:
Możesz przekazać parametry ciągu do funkcji javascript, takich jak poniższy kod:
Przekazałem 3 parametry, przy czym trzeci to parametr łańcuchowy, mam nadzieję, że to pomoże.
źródło
Edytowane: Jeśli wymagane jest odwołanie do obiektu globalnego (js) w kodzie HTML, możesz spróbować. [Nie używaj cudzysłowów („lub”) wokół zmiennej]
SkrzypceOdniesienie do .
JavaScript:
HTML:
źródło
Wiele parametrów:
źródło
Aby przekazać wiele parametrów, możesz rzutować ciąg, łącząc go z wartością ASCII, np. W przypadku pojedynczych cudzysłowów możemy użyć „
źródło
Oto rozwiązanie Jquery, którego używam.
Jquery
HTML
źródło
Możesz przekazać odwołanie lub wartość ciągu, po prostu wstaw funkcję w asp asp "" poniżej migawki
źródło
Do przekazywania wielu parametrów można rzutować ciąg, łącząc go z wartością ASCII, np. W przypadku pojedynczych cudzysłowów możemy użyć
'
ten sam parametr, który można przekazać do
onclick()
zdarzenia. W większości przypadków działa z każdą przeglądarką.źródło
czy użyć do wygenerowania zestawu przycisków o różnych parametrach obsługi. https://www.w3schools.com/js/js_function_closures.asp
Jeśli zrobimy:
następnie funkcja foo start po każdej stronie aktualizacji.
Jeśli zrobimy:
następnie dla wszystkich przycisków utworzonych w pętli ostatnia wartość parametru „wynik.nazwa”
źródło
jeśli używasz asp, możesz użyć javascript:
HTML:
JavaScript:
źródło
Jeśli dodajesz przycisk lub link dynamicznie i napotykasz problem, może to być pomocne. Rozwiązałem w ten sposób.
Jestem nowy w HTML, JQuery i JS. Być może mój kod nie będzie zoptymalizowany ani nie będzie składni, ale działał dla mnie.
źródło
W Razor możesz dynamicznie przekazywać parametry: @ Model.UnitNameVMs [i] .UnitNameID
źródło
Możesz tego użyć,
to dla mnie praca
źródło
źródło
Poniższe działa dla mnie bardzo dobrze,
źródło
Możesz użyć tego kodu w metodzie przycisku onclick:
źródło