<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>
当我按下按钮时,这工作正常,但是当我按回车键时,所有变量及其值都会显示在地址栏中。
那么我如何为此目的添加按键事件:-
我已经尝试了此代码进行按键仍然不起作用:-
<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)';
您应该使用表单,并具有onsubmit
事件,而不是处理 Enter 键。
<form id="myform">
<!-- ... -->
<input type="submit">
</form>
<script>
document.getElementById("myform").onsubmit = function (ev) {
ev.preventDefault();
// ...
}
</script>
没有进行错误检查,但希望你明白这个想法。
我想执行 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>
为了回答您的问题,我认为按 Enter 是将表单发送到浏览器,并且它必须是将操作设置为 GET 的表单(或什么都没有,默认为 GET)。这会导致浏览器刷新,表单变量在 URL 中显示为查询字符串。浏览器刷新会阻止脚本真正执行(或者在页面重新加载时执行脚本,因此您看不到它)。
如果e.preventDefault()
是否Script()
,这将阻止发生该默认操作。
[编辑] 戈帕尔刚刚击败了我,给出了几乎相同的答案。
我确实想补充一点,jQuery处理事件绑定和其他东西,也许为了更好的流程,你可以function Script(e)
用
$('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();
});
}
});
然后你就不需要input.onkeypress = 'return Script(event)';
任何地方。 jQuery有一个像.keypress()
这样的函数(参见jQuery的按键),几乎可以处理任何事件,你甚至可以使用.bind()
来绑定多个事件。请参阅文档以了解更多信息。