jQuery函数正在影响我网站上的所有按钮

时间:2012-01-16 21:52:11

标签: jquery

我最近要求我的前端设计师在我的帐户管理页面设置按钮,以便在后台将请求发送到处理页面。他向我提供了这段代码:

 //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键提交时,它们都不执行任何操作。我对前端开发一无所知,所以我很茫然。

3 个答案:

答案 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,然后在单击按钮时打开并激活控制台和网络标签。这很可能会为您提供有关正在发生的事情的更多信息。