2015-02-03 3 views
1

что я здесь пропал?onsubmit не стреляет мой JS

<script>  
    function validateLogIn(login) 
    { 
    console.log(login); 
    var username = $("#username").val(); 
    var password = $("#password").val(); 
    console.log(username, password, login); 
    $.ajax({  
     url: 'login.php', //checking the login in      
    data: {username:username,password:password}, 
    type: "POST",  //Method by which data being transmitted 
    dataType: 'json',     
    success: function(data)   
    { 
     console.log(data); 
     login.submit(); 
    } 
     //else do an alert("please lgo in again");  
    }); 
    return false; 
} 
</script> 
</head> 
<body> 
    <form action="crud.html" method="post" name="form-login" onsubmit="return validateLogIn(this);"> 
    <input required placeholder="Username" type="text" name="username" id="username"/> 
    <input required placeholder="Password" type="password" name="password" id="password"/> 
    <label for="remember">Remember Me:</label> 
    <input type="checkbox" name="remember" value="yes"> 
    <br /> 
    <br /> 
    <input type="submit" name="login" value="login" /> 
</form> 
</body> 

Есть ли у меня орфографическая ошибка? мои console.logs не показывают ни

+0

Вы пробовали это так? 'onsubmit =" validateLogIn (this) "' – meskobalazs

+0

yes, not working –

+0

Метод console.log() принимает один параметр, изменяя три аргумента в один большой строковый аргумент, проверяя приведенный ниже ответ для ссылки – Mateen

ответ

1

Этот код прекрасно работает на моем убедитесь, что вы правильно включили библиотеку jquery. и, очевидно, return false

<html> 
    <head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
    <script>  

     function validateLogIn() 
     { 
     var username = $("#username").val(); 
     var password = $("#password").val(); 
     console.log(username, password, this); 
     alert("Hello"); 
     $.ajax({  
      url: 'login.php', //checking the login in      
     data: {username:username,password:password}, 
     type: "POST",  //Method by which data being transmitted 
     dataType: 'json',     
     success: function(data)   
     { 
      console.log(data); 
     } 
      //else do an alert("please lgo in again");  
     }); 
return false; 
    } 
    </script> 
    </head> 
    <body> 
     <form action="crud.html" method="post" name="form-login" onsubmit="return validateLogIn();"> 
     <input required placeholder="Username" type="text" name="username" id="username"/> 
     <input required placeholder="Password" type="password" name="password" id="password"/> 
     <label for="remember">Remember Me:</label> 
     <input type="checkbox" name="remember" value="yes"> 
     <br /> 
     <br /> 
     <input type="submit" name="login" value="login" /> 
    </form> 
    </body> 
    </html> 
+0

eish yes ... duh ... забыли включить библиотеку! благодаря! –

+0

Чтобы избежать таких ситуаций, я использую html-шаблоны, предопределенные в eclipse, я думаю, это может быть хорошим выбором для вас – codeomnitrix

2

В вашей validateLogIn() функции, вы не возвращаетесь false, поэтому функция будет называться, но браузер все равно будет продолжаться представить формы crud.html и изменения страницы.

function validateLogIn(login) 
{ 
    ... 
    ... 
    ... 
    return false; 
} 

Если вы хотите представить crud.html только после того, как функция успеха пожаров, то вам все равно нужно выше return false, и в функции успеха добавить:

success: function(data)   
{ 
    login.submit(); 
} 
+0

спасибо, я добавил эти строки, но все еще не выполнял JS, см. Поправки в OP –

0

изменить ваше заявление журнала к этому, как показано ниже, метод журнала() принимает один аргумент, так что если вы хотите напечатать три переменные добавить его в одну строку

console.log("username:"+username+" password:"+password+" id:"+login.id); 
Смежные вопросы