我按f12调试alert只调用了一次,我进入了函数判断完成alert弹出完之后从这个函数出来窗口再出来一次,没再调用alert,
两次出来的窗口的提示信息一样,不过有一次有禁止再提示的选项,另一个没有
$(function(){
$("#logDialog #submit").click(function(){
                        var temp=true;
                        if($("#logDialog #userName").val()==""){
                            temp=false;
                            alert("用户名不能为空!")
                        }else if($("#logDialog #password").val()==""){
                            temp=false;
                            alert("密码不能为空!")
                        }else if($("#logDialog #safeCode").val()==""){
                            temp=false;
                            alert("验证码不能为空!");
                        }
 });
});
这是我的代码

解决方案 »

  1.   

    alert完成后需要return终止,要不然会一直往下执行
      

  2.   

    这个三个判断建议分开写,因为这是三个不同的条件,
    if($("#logDialog #userName").val()==""){
                                temp=false;
                                alert("用户名不能为空!")
                            }
    if($("#logDialog #password").val()==""){
                                temp=false;
                                alert("密码不能为空!")
                            }
      if($("#logDialog #safeCode").val()==""){
                                temp=false;
                                alert("验证码不能为空!");
                            }
    如果你单纯的判断用户名的话 可以这样写,比如你判断完是否为空后,再判断用户名是否含有敏感字符,或是规定用户名不能包涵数字等等条件,可以else if这样写。你的if判断,如果出现多层判断,最好结尾为else{}
      

  3.   

    如果还是不行,加上return试试看
      

  4.   

    绑定click事件之前先解除绑定$(....).unbind('click').click(....)
      

  5.   

    感觉你这代码是在一个动态加载的子页里面,多次加载这个子页,就给这个按钮绑定了多次的点击事件,建议你绑定前先取消绑定的click事件
      

  6.   

    感觉是绑定了2次,你在掉个unbind()试试
      

  7.   

    id="submit" 的这个控件是submit按钮还是普通button按钮?
      

  8.   

    return false
      

  9.   

    看你的代码,应该是只调用了一次函数,但是弹出了两次,很大的概率是事件冒泡,你可以调用event.stopPropagation(),另外,你可以使用f12断点调试,看看是哪里出的问题