2012-04-18 52 views
2
<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 
$(document).ready(function() { 
    $("input[name='search_user_submit']").click(function() { 
     var cv = $('#newInput').val(); 
     var cvtwo = $('input[name="search_option"]:checked').val(); 
     var data = { "cv" : cv, "cvtwo" : cvtwo }; // sending two variables 
     $("#SR").html('<img src="loading.gif"/>').show(); 
     var url = "user.php"; 
     $.post(url, data, function(data) { 
      $("#SR").html(data).show(); 
     }); 

    }); 
}); 
});//]]> 
</script> 

這工作得很好,當我按下按鈕,但是當我按回車鍵的所有變量和值在地址欄中得到顯示按JavaScript的工作。如何讓AJAX上的回車鍵

所以,我怎樣才能添加用於此目的的按鍵事件: - :對於按鍵我創建文本框

<script type="text/javascript"> 
$(window).load(function(){ 
    $(document).ready(function() { 
    function Script(e) { 
     if (e.keyCode == 13) { 
      var cv = $('#newInput').val(); 
      var cvtwo = $('input[name="search_option"]:checked').val(); 
      var data = { "cv" : cv, "cvtwo" : cvtwo }; // sending two variables 
      $("#SR").html('<img src="loading.gif"/>').show(); 
      var url = "user.php"; 
      $.post(url, data, function(data) { 
       $("#SR").html(data).show(); 
      }); 
     } 
    } 
    }); 
}); 
</script> 

而且 -

我已經嘗試了按鍵的代碼仍然是其無法正常工作在選項按鈕的點擊中我的javascript我指定了這一點: -

input.onkeypress = 'return Script(event)';

+0

是否存在,這是獲得提交一個封閉的形式?另外,你應該從你的事件處理程序中做一個「返回false」 – 2012-04-18 05:17:14

回答

2

您應該使用形式,並具有onsubmit事件而不是處理輸入密鑰。

<form id="myform"> 
    <!-- ... --> 
    <input type="submit"> 
</form> 

<script> 
document.getElementById("myform").onsubmit = function (ev) { 
    ev.preventDefault(); 
    // ... 
} 
</script> 

沒有錯誤檢查完成,但希望你明白了。

0

爲了回答你的問題,我認爲按Enter鍵發送表單到瀏覽器,它必須是一個表單,其操作設置爲GET(或者什麼都沒有,默認爲GET)。這會導致瀏覽器刷新,表單變量作爲查詢字符串出現在URL中。瀏覽器刷新會阻止腳本真正執行(或者在頁面重新加載時執行,因此您不會看到它)。

如果你做e.preventDefault()如果Script(),那會阻止發生默認動作。

Gopal只是打我給幾乎相同的答案。

我想補充一點的jQuery處理事件綁定之類的東西,也許一個更好的流程,你可以用

$('input').keypress(function(e) { 
    if (e.keyCode == 13) { 
     e.preventDefault(); 
     var cv = $('#newInput').val(); 
     var cvtwo = $('input[name="search_option"]:checked').val(); 
     var data = { "cv" : cv, "cvtwo" : cvtwo }; // sending two variables 
     $("#SR").html('<img src="loading.gif"/>').show(); 
     var url = "user.php"; 
     $.post(url, data, function(data) { 
      $("#SR").html(data).show(); 
     }); 
    } 
}); 

更換function Script(e)然後你不需要input.onkeypress = 'return Script(event)';任何地方。對於幾乎任何事件,jQuery都有類似.keypress()(請參閱jQuery's keypress)的功能,甚至可以使用.bind()來綁定多個事件。請參閱documentation瞭解更多信息。

1

我瘦要執行的AJAX調用和老虎按鈕進入

試試這個

<script type='text/javascript'>//<![CDATA[ 
$(window).load(function(){ 
$(document).ready(function() { 
    $("input[name='search_user_submit']").keyup(function(event){ 

    if(event.keyCode == 13) 
{ 


     var cv = $('#newInput').val(); 
     var cvtwo = $('input[name="search_option"]:checked').val(); 
     var data = { "cv" : cv, "cvtwo" : cvtwo }; // sending two variables 
     $("#SR").html('<img src="loading.gif"/>').show(); 
     var url = "user.php"; 
     $.post(url, data, function(data) { 
      $("#SR").html(data).show(); 
} 
     }); 

    }); 
}); 
});//]]> 
</script>