我有另一个类似的脚本运行得很好,我不明白为什么这不起作用。这段代码有什么问题吗?
$("#lastname").keyup(function(event){
var keyCode = event.keyCode || event.which;
if(keyCode === 13) {
passOnRegFront();
}
});
$("#register").click(function() {
passOnRegFront();
});
function passOnRegFront() {
var firstname = $("#firstname").val();
var lastname = $("#lastname").val();
var dataString = '&firstname=' + firstname + '&lastname=' + lastname;
if(email=='' || password=='') {
$('#success').fadeOut(400).hide();
$('#error').fadeOut(400).show();
} else {
$.ajax({
type: "POST",
dataType: "JSON",
url: "<?=base_url()?>index.php/home/passOnReg",
data: dataString,
json: {session_state: true},
success: function(data) {
if(data.registered == true) { // true means user is logged in.
$("#main1").hide();
$("#main1").load('<?=base_url()?>index.php/home/dashboard');
}
}
});
}
}
});
答案 0 :(得分:1)
当我浏览你的代码时,以下问题突然出现在我身上:
email
和password
变量未定义,根据上下文,我猜您可能会在此时考虑firstname
和lastname
。从您提到的其他脚本中复制并粘贴错误?
在块的末尾有一个额外的});
。也许这只是你没有展示的$(document).ready(function() {
的结尾,但显然我不知道你有多少代码没有显示 - 因为你所展示的这是一个错误。< / p>
顺便说一句,如果你修复了缩进,它会更容易阅读和调试:乍看之下你似乎在.click()
处理器里面创建了.keyup()
处理程序 {{1}处理程序。
另外,如果您查看使用对象设置.ajax()
调用的data
属性,代码可能会更清晰。摆脱dataString
,然后说:
...
data : { firstname : firstname, lastname : lastname },
...
(jQuery将为您创建适当的查询字符串,如the .ajax()
doco中所述。)