Ich möchte einen Parameter (dh eine Zeichenfolge) an eine Onclick-Funktion übergeben. Im Moment mache ich das:
'<input type="button" onClick="gotoNode(' + result.name + ')" />'
mit result.name zum Beispiel gleich string "Add". Wenn ich auf diese Schaltfläche klicke, wird ein Fehler angezeigt, der besagt, dass Hinzufügen nicht definiert ist. Da dieser Funktionsaufruf mit einem numerischen Parameter perfekt funktioniert, gehe ich davon aus, dass er etwas mit den Symbolen "" in der Zeichenfolge zu tun hat. Hatte jemand dieses Problem schon einmal?
javascript
html
JasperTack
quelle
quelle
Antworten:
Es sieht so aus, als würden Sie DOM-Elemente aus Zeichenfolgen erstellen. Sie müssen nur einige Anführungszeichen um result.name hinzufügen:
Sie sollten dies jedoch wirklich mit den richtigen DOM-Methoden tun.
Beachten Sie jedoch, dass sich eine Schleife oder etwas
result
anderes ändert, bevor das Ereignis ausgelöst wird, und dass Sie eine zusätzliche Bereichsblase erstellen müssen, um die sich ändernde Variable zu schattieren.quelle
Einige Bedenken hinsichtlich der Verwendung von String-Escape in onClick und mit zunehmender Anzahl von Argumenten wird die Wartung umständlich.
Der folgende Ansatz hat einen One-Hop-On-Click - Übertragen Sie das Steuerelement auf eine Handler-Methode, und die Handler-Methode kann basierend auf dem Ereignisobjekt das Klickereignis und das entsprechende Objekt abziehen.
Es bietet auch eine sauberere Möglichkeit, mehr Argumente hinzuzufügen und mehr Flexibilität zu haben.
Auf Javascript-Ebene:
Der Vorteil hierbei ist, dass wir so viele Argumente haben können (im obigen Beispiel data-arg1, data-arg2 ....) wie nötig.
quelle
invoke
wird nicht aufgerufen, wenn Sie auf die Schaltfläche klickenJSON.stringify(obj)
im HTML undJSON.parse(event.target.getAttribute('data-arg'))
in der JavaScript-EbeneIch schlage vor, nicht einmal HTML-
onclick
Handler zu verwenden und etwas häufigeres zu verwenden, wie zdocument.getElementById
.HTML:
JavaScript:
quelle
onclick
ist keine Funktion, es ist eine Eigenschaft, der Sie eine Funktion zuweisen müssen:....onclick = function() {...};
Ich vermute, Sie erstellen eine Schaltfläche mit JavaScript. Der Fehler in Ihrem Code ist also, dass er in dieser Form gerendert wird
In diesem aktuellen Zustand
add
wird als Bezeichner wie Variablen oder Funktionsaufrufe betrachtet. Sie sollten dem Wert so entkommenquelle
Dies ist eine schöne und übersichtliche Möglichkeit, Werte oder Objekte zu senden.
quelle
Versuche dies..
HTML:
JavaScript:
Hinweis: Stellen Sie sicher, dass Sie Argumente zwischen '' Zeichen wie ('a1') im HTML-Code senden
quelle
Außerdem verwenden Sie das Grabakzent-Symbol (`) in der Zeichenfolge
Versuchen :
Weitere Informationen finden Sie unter MDN und Stackoverflow
Von Chrome, Edge, Firefox (Gecko), Opera, Safari unterstützt, aber nicht Internet Explorer.
quelle
Wenn Ihre Schaltfläche dynamisch generiert wird:
Sie können Zeichenfolgenparameter an Javascript-Funktionen wie den folgenden Code übergeben:
Ich habe 3 Parameter übergeben, wobei der dritte ein String-Parameter ist. Ich hoffe, das hilft.
quelle
Bearbeitet: Wenn Sie auf das globale Objekt (js) in Ihrem HTML-Code verweisen möchten, können Sie dies versuchen. [Verwenden Sie keine Anführungszeichen ('oder ") um die Variable]
Geigenreferenz .
Javascript:
HTML:
quelle
Mehrere Parameter:
quelle
Um mehrere Parameter zu übergeben, können Sie die Zeichenfolge umwandeln, indem Sie sie mit dem ASCII-Wert verketten. Für einfache Anführungszeichen können wir '
quelle
Hier ist eine Jquery-Lösung, die ich verwende.
Jquery
HTML
quelle
Sie können eine Aktualisierung oder einen Zeichenfolgenwert übergeben, indem Sie die Funktion einfach in die Doube-Kommas "" asp unterhalb des Schnappschusses einfügen
quelle
Zum Übergeben mehrerer Parameter können Sie die Zeichenfolge umwandeln, indem Sie sie mit dem ASCII-Wert verketten, z. B. für einfache Anführungszeichen
'
Der gleiche Parameter kann an das
onclick()
Ereignis übergeben werden. In den meisten Fällen funktioniert er mit jedem Browser.quelle
wenn für die Erzeugung eines Satzes von Schaltflächen mit verschiedenen Parametern von Handlern verwendet werden soll. https://www.w3schools.com/js/js_function_closures.asp
wenn wir es tun:
dann startet die Funktion foo nach jeder Aktualisierungsseite.
wenn wir es tun:
dann für alle in der Schleife erstellten Schaltflächen der letzte Wert des Parameters "result.name"
quelle
Wenn Sie asp verwenden, können Sie Javascript verwenden:
HTML:
Javascript:
quelle
Wenn Sie eine Schaltfläche oder einen Link dynamisch hinzufügen und sich dem Problem stellen, kann dies hilfreich sein. Ich habe auf diese Weise gelöst.
Ich bin neu in HTML, JQuery und JS. Vielleicht wird mein Code nicht optimiert oder die Syntax wird nicht angezeigt, aber es hat bei mir funktioniert.
quelle
In Razor können Sie Parameter dynamisch übergeben: @ Model.UnitNameVMs [i] .UnitNameID
quelle
Sie können dies verwenden,
seine Arbeit für mich
quelle
quelle
Folgendes funktioniert bei mir sehr gut,
quelle
Sie können diesen Code in Ihrer Button-On-Click-Methode verwenden:
quelle