我一直四处奔波,所以我希望有人可以帮助我。
我的代码中有两个函数。第一个工作正常。您可以单击显示的值,在显示的输入字段中输入信息,然后按Enter键即可运行。第二个当你单击它显示输入的值时,但是当你按Enter键时它会挂起页面然后刷新。但是存储了cookie。
任何想法为什么第一个工作正常但第二个是让页面挂起并刷新?
$(document).ready(function() {
$('#userTo').click(function() {
if($(this).children('[name=userTo]').length == 0) {
$(this).html('<input type="text" name="userTo" size="3" value="<?php echo (abs((int) $_COOKIE['user_for']) ? abs((int) $_COOKIE['user_for']) : $ir['userid']); ?>" style="font-size: 12px;font-family: Tahoma;padding:0;margin:0;text-align: center;" />');
$('[name=userTo]').focus();
}
});
$('#userTo').keypress(function(e){
if(e.which == 13){
var username = $('[name=userTo]').val();
$.ajax({
type: "GET",
url: "donate.php",
cache: false,
data: "username=" + username,
success: function(data){
if(data == 'null') {
alert('That user dosen\'t exist.');
$('[name=userTo]').focus();
} else {
$.cookie("user_for", username);
$('#userTo').html(data);
}
}
});
}
});
});
这是第二个功能。
$(document).ready(function() {
$('#credits').click(function() {
if($(this).children('[name=credits]').length == 0) {
$(this).html('<input type="text" name="credits" size="3" value="<?php echo (abs((int) $_COOKIE['user_credits']) ? abs((int) $_COOKIE['user_credits']) : $ir['d_credits']); ?>" style="font-size: 12px;font-family: Tahoma;padding:0;margin:0;text-align: center;" />');
$('[name=credits]').focus();
}
});
$('#credits').keypress(function(e){
if(e.which == 13){
var d_credits = $('[name=credits]').val();
$.ajax({
type: "GET",
url: "donate.php",
cache: false,
data: "d_credits=" + d_credits,
success: function(data){
if(data == 'null') {
alert('That user dosen\'t exist.');
$('[name=credits]').focus(); } else {
$.cookie("user_credits", d_credits); $('#credits').html(data);
}
}
});
}
});
});
答案 0 :(得分:0)
您可以在代码中执行批次清理,但主要的是:如果您在表单中按Enter键时不想刷新页面,则需要预防当你按Enter键时触发的浏览器的默认按键处理程序。就像现在一样,你的处理函数将首先运行并执行你的ajax GET,然后运行默认处理程序,它将(可能)提交表单。
$('#credits').keypress(function(e) {
if(e.which == 10 || e.which == 13) {
// ... do stuff ...
e.preventDefault();
}
});
你应该在两个函数中都这样做。我不确定为什么第一个不刷新页面;我猜你有一个提交按钮,而不是另一个?