为什么我在 JavaScript/AJAX 中的 xhr.onreadystatechange() 中的 “form.s


why do i get no response in "form.submit()" inside xhr.onreadystatechange() in javascript/AJAX

form.submit()函数在响应xhr.onreadystatechange时不起作用。

这是我的登录表单:

<form action="user_home.php" method="post" id="loginForm" >
   <tr>
     <td colspan=2>Members log in here:</td>
   <tr>
     <td>Username:</td>
     <td><input type='text' name='username' id='username' /></td></tr>
   <tr>
     <td>Password:</td>
     <td><input type='password' name='password' id="password" /></td></tr>
   <tr>
     <td colspan=2 align='center'>
     <input type="submit" name="submit" id="submit"  value= "Login" /></td></tr>
</form>
<script src="forLogin.js"></script>

在JavaScript中

xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {
    if ((xhr.status >= 200 && xhr.status < 300) || (xhr.status == 304)) {
      if (xhr.responseText == 'VALID') {
        alert(xhr.responseText); //this works
        var form = document.getElementById('loginForm');
        form.submit(); // it doesnt work!!!
      } else {
        var message = '<h2>Error!</h2><p>The following Error(s) occured: <ul>';
        message += '<li class="error">Invalid Username Password combinations!</li>';
        showErrorMessage(message);
      }
      xhr = null;
    }
  }
};

当我的 ajax 函数发送>回显"有效"时;
我收到警报,但没有收到重定向。为什么?
有人知道吗?

问题就在这里,

<input type='text' name='username' id='username' /> 
 <input type='password' name='password' id="password" />

将其更改为:-

    <td><input name='username' id='username'  type='text'  >
   <td><input name='password' id="password" type='password'  >

现在工作...

你可以

试试

   document.getElementById("loginForm").submit();

而不是

                var form = document.getElementById('loginForm');
                form.submit();// it doesnt work!!!