2012-10-09 12 views
5

Ich habe dieses Textfeld und Schaltfläche hierJavaScript Onclick umleiten

<input name="txtSearch" type="text" id="txtSearch" class="field" />    
<input type="submit" name="btnSearch" value="" id="btnSearch" class="btn" onclick="javascript:SubmitFrm()" /> 

und wenn der Benutzer auf die Schaltfläche zum Senden klickt diese Funktion annehmen wird

<script type="text/javascript"> 
    function SubmitFrm(){ 
     var Searchtxt = document.getElementById("txtSearch").value(); 
     window.location = "http://www.example.com/search/?Query=" + Searchtxt; 
    } 
</script> 

Aber es passiert nichts zu laufen, was ich erwartet passieren, wenn der Benutzer auf die Schaltfläche absenden, nehmen Sie den Wert aus der Suche Textfeld und leiten Sie den Benutzer auf die URL + der Wert der Suchtextfeld ...

Was mache ich falsch?

Antwort

1

Doing fixiert das ist mein Problem

<script type="text/javascript"> 
    function SubmitFrm(){ 
     var Searchtxt = document.getElementById("txtSearch").value; 
     window.location = "http://www.mysite.com/search/?Query=" + Searchtxt; 
    } 
</script> 

I .value();-.value; änderte die ()

herausnehmen

ich etwas in meinem Textfeld nicht Taste

<input name="txtSearch" type="text" id="txtSearch" class="field" />    
<input type="submit" name="btnSearch" value="" id="btnSearch" class="btn" onclick="javascript:SubmitFrm()" /> 

wirkt wie ein Zauber ändern oder Bestaetigung .

4

Ändern Sie den Onclick von

onclick="javascript:SubmitFrm()" 

zu

onclick="SubmitFrm()" 
2

Just do

onclick="SubmitFrm" 

Das javascript: Präfix nur für Link-URLs erforderlich ist.

0

Entfernen Sie 'javascript:' aus Ihrem Code und es sollte funktionieren.

Haben Sie FireFox verwendet? Ich habe von jemand anderem gelernt, dass FireFox die Zeichenfolge "javascript:" nicht mehr akzeptiert. Aber für das Leben von mir kann ich nicht die ursprüngliche Quelle finden (obwohl ich glaube, dass es irgendwo in FF Update Notes war).

24

Es gibt mehrere Probleme in Ihrem Code:

  • Sie sind das click Ereignis einer Schaltfläche einreichen Handhabung, dessen Standardverhaltens ist eine Anfrage an den Server zu senden und die Seite neu. Sie haben dieses Verhalten zu hemmen, indem false von Ihrem Handler Rückkehr:

    onclick="SubmitFrm(); return false;" 
    
  • value kann nicht aufgerufen werden, weil es eine Eigenschaft ist, keine Methode:

    var Searchtxt = document.getElementById("txtSearch").value; 
    
  • Die Suchabfrage Sie senden in der Query-String hat encoded sein:

    window.location = "http://www.mysite.com/search/?Query=" 
        + encodeURIComponent(Searchtxt);