[closed] Javascript im button - ich sehe den Fehler nicht!?

am 11.04.2014 - 15:50 Uhr in
Also, will einen Button für eine Weiterleitung, button ist da aber href wird nicht produziert, aufgerufen oder was auch immer:
<?php
'link_1'=>array(
'#type' =>'submit',
'#value'=>t('Add Product'),
'#validate' => array(),
'#attributes' => array(
'onclick' => "location.href=convert/product/$nid",
),
),
?>
ergibt im Firebug:
<button class="btn btn-default form-submit" type="submit" value="Füge Produkt hinzu" name="op" onclick="location.href=convert/product/44479">Füge Produkt hinzu</button>
Button da, aber wie gesagt: tot.
Ich sehe den Fehler nicht! Habe es schon mit self.location.href und noch ein paar Gimmicks versucht, nüscht!
Gibts hier nen JS Spezialisten?
Danke vorab,
maen
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo maen, bin nicht
am 11.04.2014 - 20:13 Uhr
Hallo maen,
bin nicht unbedingt JS Spezialist aber
da haben sich 2 kleine Fehler eingeschlichen.
1. Ist location.href eine Methode des Objekts window (es gibt auch document.location aber das würde ich lassen)
2. href Parameter sind strings und gehören deshalb in Anführungszeichen (hier String in String mit escape)
'#attributes' => array(
'onclick' => "windows.location.href=\'convert/product/$nid\'"',
),
Der onclick Tag sollte in HTML etwa so aussehen:
onclick="windows.location.href='convert/product/XXX'"
MfG
Robert
Hallo,Halloder ganze Ansatz
am 12.04.2014 - 10:12 Uhr
Hallo,
der ganze Ansatz ist sehr unschön und von daher schon fehleranfällig.
Besser wäre hier ein data-Attribut zu füllen und die ganze Funktionalität in JS zu belassen. So ungefähr (nicht getestet):
dein Markup:
<button id="deineId" class="btn btn-default form-submit" type="submit" value="Füge Produkt hinzu" name="op" data-url="convert/product/44479">Füge Produkt hinzu</button>
function goToUrl() {
$("#deineId").on( "click", function() {
window.location = $(this).data("url");
});
}
Gruß
Christian
Danke Robert und oteno, erst
am 12.04.2014 - 13:59 Uhr
Danke Robert und oteno,
erst mal waren es die escape Zeichen schuld! Deshalb gab es keine Reaktion! Danke dafür, Robert.
Und Oteno:
Ja, Dein Ansatz ist wirklich besser. Ich mache mir darüber mal Gedanken.
Nochmals Danke!
Vielleicht ist dieses Tool
am 14.04.2014 - 08:38 Uhr
Vielleicht ist dieses Tool für dich interessant, der Link enthält ein simples Demo Beispiel, im Netz findest du viele Tutorials zu js fiddle.
So kannst du JS einmal auf korrekte Schreibweise prüfen und im rechten Bereich live testen.
http://jsfiddle.net/LQg7W/
Oder auch gut, unter Firefox / Extras / Web-Entwickler / Java Script Umgebung....... damit kannst du deine Seite mit dem eingegebenen Script ebenfalls neu laden und testen.
(Das Web-Entwickler Tool steckt glaub ich in der Erweiterung Fire Bug...)
Grüße Jenna