2012-10-09 34 views
5

Tôi có lĩnh vực văn bản này và nút đâyJavaScript onclick redirect

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

và khi người dùng nhấp vào nút gửi chức năng này là giả sử để chạy

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

Nhưng không có gì xảy ra, những gì tôi mong đợi xảy ra là khi người dùng nhấp vào nút gửi, lấy giá trị từ hộp văn bản tìm kiếm và chuyển hướng người dùng đến url + giá trị của hộp văn bản tìm kiếm ...

Tôi đang làm gì sai?

Trả lời

1

làm điều này cố định vấn đề của tôi

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

tôi đã thay đổi .value();-.value; đưa ra khỏi ()

nút Tôi đã không thay đổi bất cứ điều gì trong lĩnh vực văn bản của tôi hoặc trình

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

trình như một say mê .

4

Thay đổi onclick từ

onclick="javascript:SubmitFrm()" 

để

onclick="SubmitFrm()" 
2

Chỉ cần làm

onclick="SubmitFrm" 

Tiền tố javascript: chỉ được yêu cầu cho các URL liên kết.

0

Xóa 'javascript:' khỏi mã của bạn và mã sẽ hoạt động.

Bạn có sử dụng FireFox không? Tôi đã học được từ người khác rằng FireFox không còn chấp nhận chuỗi 'javascript:' nữa. Tuy nhiên, đối với cuộc sống của tôi, tôi không thể tìm thấy nguồn gốc (mặc dù tôi tin rằng nó là một nơi nào đó trong ghi chú cập nhật FF).

24

Có một số vấn đề trong mã của bạn:

  • Bạn đang xử lý trường hợp click của một nút gửi, người có hành vi mặc định là để gửi một yêu cầu đến máy chủ và tải lại trang. Bạn cần phải ngăn chặn hành vi này bằng cách trả lại false từ xử lý của bạn:

    onclick="SubmitFrm(); return false;" 
    
  • value không thể được gọi bởi vì nó là một tài sản, không phải là một phương pháp:

    var Searchtxt = document.getElementById("txtSearch").value; 
    
  • Các truy vấn tìm kiếm bạn đang gửi tại chuỗi truy vấn có được encoded:

    window.location = "http://www.mysite.com/search/?Query=" 
        + encodeURIComponent(Searchtxt); 
    
Các vấn đề liên quan