Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery和AJAX只工作一次_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript jQuery和AJAX只工作一次

Javascript jQuery和AJAX只工作一次,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我对AJAX和jQuery有问题。我编写了登录系统的函数,但它只在第一次工作。这是我的密码: 模态中的html: <form role="form" onsubmit=" return login()" method="post" action="" > <div class="form-group"> <label for="userName"><span class="glyphicon glyphicon-user"><

我对AJAX和jQuery有问题。我编写了登录系统的函数,但它只在第一次工作。这是我的密码:

模态中的html:

<form role="form" onsubmit=" return login()"  method="post" action="" >
   <div class="form-group">
     <label for="userName"><span class="glyphicon glyphicon-user"></span>E-mail</label>
     <input type="email" name="emailLogin" class="form-control" id="userName" placeholder="e-mail" required>
   </div>
   <div class="form-group">
      <label for="password"><span class="glyphicon glyphicon-eye-open"><span>Password</label>
      <input type="password" name="passLogin" class="form-control" id="password" placeholder="Password" required>
    </div>
    <button type="submit" class="btn btn-success btn-block">Login<span class="glyphicon glyphicon-log-in"></span></button>
</form>

电子邮件
密码
登录
以下是jquery:

function login(){
  login=document.getElementById('userName').value;
  pass=document.getElementById('password').value;
  var dataString="emailLogin="+login+"&passLogin="+pass;

  $.ajax({
    type: "POST",
    url: "models/handler/KlientHandler.php",
    cache: false,
    data: dataString,
    success: function(text){
      if(text=='0'){
        $("#loginError").removeClass('hidden');
      }else{
        $("#loginOk").removeClass('hidden');
        $("#myModal").modal('hide');
        $("#loginLi").html("<a id=\"user\">"+login+" (Profile)<span class=\"glyphicon glyphicon-user\"></span></a>");
        $("#regLi").html("<a href=\"logout\" id=\"user\">"+login+" (Logout)<span class=\"glyphicon glyphicon-log-out\"></span></a>");
      }
    }
  });
  return false;
}
函数登录(){
login=document.getElementById('userName')。值;
pass=document.getElementById('password')。值;
var dataString=“emailLogin=“+login+”&passLogin=“+pass;
$.ajax({
类型:“POST”,
url:“models/handler/KlientHandler.php”,
cache:false,
数据:dataString,
成功:函数(文本){
如果(文本=='0'){
$(“#登录错误”).removeClass('hidden');
}否则{
$(“#loginOk”).removeClass('hidden');
$(“#myModal”).modal('hide');
$(“#loginLi”).html(“”);
}
}
});
返回false;
}

您正在用字符串覆盖登录函数

函数foo(){
警报(“foo”);
foo=函数(){
警报(“条”);
}
}

点击我!

您正在用字符串覆盖登录函数

函数foo(){
警报(“foo”);
foo=函数(){
警报(“条”);
}
}

点击我!

该代码段测试您的逻辑,您的登录和传递变量出现控制台错误。我将它们设置为“var”,并将您的成功逻辑放在ajax请求的“error”部分,因为我无法访问您的服务器,但它确实创建了注销按钮。这就是你想要的吗

函数登录(){
var login=document.getElementById('userName')。值;
var pass=document.getElementById('password')。值;
var dataString=“emailLogin=“+login+”&passLogin=“+pass;
$.ajax({
类型:“POST”,
url:“models/handler/KlientHandler.php”,
cache:false,
数据:dataString,
成功:函数(文本){
/*成功逻辑*/
},
错误:函数(){
警报(“测试-成功逻辑”);
$(“#loginOk”).removeClass('hidden');
//$(“#myModal”).modal('hide');
$(“#loginLi”).html(“”);
}
});
返回false;
}

电子邮件
密码
登录

登录确定
代码段测试您的逻辑,您的登录和传递变量出现控制台错误。我将它们设置为“var”,并将您的成功逻辑放在ajax请求的“error”部分,因为我无法访问您的服务器,但它确实创建了注销按钮。这就是你想要的吗

函数登录(){
var login=document.getElementById('userName')。值;
var pass=document.getElementById('password')。值;
var dataString=“emailLogin=“+login+”&passLogin=“+pass;
$.ajax({
类型:“POST”,
url:“models/handler/KlientHandler.php”,
cache:false,
数据:dataString,
成功:函数(文本){
/*成功逻辑*/
},
错误:函数(){
警报(“测试-成功逻辑”);
$(“#loginOk”).removeClass('hidden');
//$(“#myModal”).modal('hide');
$(“#loginLi”).html(“”);
}
});
返回false;
}

电子邮件
密码
登录

Login OK
删除“return”并只保留onsubmit=“Login()”@rjustin当我删除return并保留onsubmit=“Login()”,jquery不显示id为loginOk/loginerror的元素时,我会将其放入onclick=“Login()”在按钮上,但您的问题可能是由于action属性造成的,它也存在,但为空。我删除action并将onsubmit更改为onclick,并将其从窗体移动到按钮。但只有一次工作的问题并没有解决。您正在用字符串覆盖您的
登录
函数。查看第二次单击此处如何导致不同的警报?在您的例子中,您将用字符串而不是函数替换函数,导致语法错误。请删除“return”并仅使用onsubmit=“login()”@rjustin当我删除return并使用onsubmit=“login()”,jquery不显示id为loginOk/loginerror的元素时,我会将其放入onclick=“login()”在按钮上,但您的问题可能是由于action属性造成的,它也存在,但为空。我删除action并将onsubmit更改为onclick,并将其从窗体移动到按钮。但只有一次工作的问题并没有解决。您正在用字符串覆盖您的
登录
函数。查看第二次单击此处如何导致不同的警报?在本例中,您将使用字符串而不是函数替换函数,从而导致语法错误。