2012-10-09 17 views
5

mam tego pola tekstowego i przycisku tutajJavaScript onclick przekierować

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

i gdy użytkownik kliknie na przycisk Wyślij to funkcja jest przypuszczać, aby uruchomić

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

Ale nic się nie dzieje, to co ja spodziewałem tak się dzieje, gdy użytkownik kliknie przycisk przesyłania, pobiera wartość z pola tekstowego wyszukiwania i przekierowuje użytkownika do adresu URL + wartość pola tekstowego wyszukiwania ...

Co robię źle?

Odpowiedz

1

ten sposób ustalone mój problem

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

Zmieniłem .value(); do .value; wyjęciu ()

Nic nie zmieni się w moim polu tekstowym lub przesłać przycisk

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

działa jak czar .

4

Zmiana onclick z

onclick="javascript:SubmitFrm()" 

do

onclick="SubmitFrm()" 
2

Wystarczy zrobić

onclick="SubmitFrm" 

javascript: prefiks jest wymagany tylko dla adresów URL łącza.

0

Usuń "javascript:" z kodu i powinno działać.

Czy używasz FireFox? Nauczyłem się od kogoś, że FireFox nie akceptuje już ciągu "javascript:". Jednak dla mojego życia nie mogę znaleźć oryginalnego źródła (choć uważam, że było to gdzieś w notatkach aktualizacji FF).

24

Istnieje kilka kwestii w kodzie:

  • obchodzenia zdarzenie click z przycisku przedstawienia, którego zachowanie domyślne to aby umieścić żądanie do serwera i przeładuj stronę. Trzeba hamować ten problem przez zwrócenie false z Handler:

    onclick="SubmitFrm(); return false;" 
    
  • value nie można nazwać, ponieważ jest to nieruchomość, a nie metoda:

    var Searchtxt = document.getElementById("txtSearch").value; 
    
  • Kwerenda wyszukiwania wysyłasz w łańcuch zapytania musi być encoded:

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