我最近要求我的前端设计师在我的帐户管理页面设置按钮,以便在后台将请求发送到处理页面。他向我提供了这段代码:
//Account
$('button#changeemail').click(function(){
var newEmail = $('input[name*=newEmail]').serialize();
var confirmEmail = $('input[name*=confirmEmail]').serialize();
var password = $('input[name*=password]').serialize();
var data = newEmail + '&' + confirmEmail + '&' password + '&email=true';
$.post('accountProcess.php', data, function(result){
$('#emailError p').html(result);
});
});
$('button#changepassword').click(function(){
var currentPassword = $('input[name*=currentPassword]').serialize();
var newPassword = $('input[name*=newPassword]').serialize();
var confirmPassword = $('input[name*=confirmPassword]').serialize();
var data = currentPassword + '&' + newPassword + '&' confirmPassword + '&password=true';
$.post('accountProcess.php', data, function(result){
$('#passwordError p').html(result);
});
});
然而,这会立即破坏我网站上使用类似设置的所有按钮。当您尝试单击它们或按Enter键提交时,它们都不执行任何操作。我对前端开发一无所知,所以我很茫然。
答案 0 :(得分:4)
您在函数
中缺少+
var data = newEmail + '&' + confirmEmail + '&' password + '&email=true';
需要
var data = newEmail + '&' + confirmEmail + '&' + password + '&email=true';
与第二个相同。
答案 1 :(得分:0)
这是专门针对两个元素,“#changepassword”和“#changeemail”。哈希符号表示“ID”,意味着每页只有一个这些元素。因此,该代码中的任何内容都不应影响页面上的其他元素......必须有其他代码导致错误。
但是,如果单击#changepassword或#changeemail链接会生成javascript错误,如果它们也依赖于javascript,则可能会阻止其他按钮工作。因此,您需要查明是否有任何错误被抛出,并将其发布到您的问题中
答案 2 :(得分:0)
在没有真正检查过代码的情况下,我的第一个建议是让你下载FireBox for FireFox,然后在单击按钮时打开并激活控制台和网络标签。这很可能会为您提供有关正在发生的事情的更多信息。