Обратный вызов из запроса ajax не заботится о возвращаемом значении:
$.post("action.php",
{
action: action,
user: form.user.value,
pass: form.pass.value
},
function(data)
{
if(data=="loginok")
return true;
else
return false;
});
Когда вы говорите return true
из вашего обратного вызова, в библиотеке jQuery нет ничего, проверяющего это значение. Похоже, что вы пытаетесь в основном сделать проверку формы при нажатии кнопки; Вы путаете модель события с синхронным вызовом.
Что происходит, это:
-> Call to submitLogin();
-> Invokes jQuery POST Ajax Method
-> Immediately exits submitLogin
-> When the POST request is complete, calls the callback
Что вам нужно сделать, это, вероятно, что-то вроде этого:
function submitlogin()
{
var form = document.login; var action = "chk_login";
$.post("action.php",
{
action: action,
user: form.user.value,
pass: form.pass.value
},
function(data)
{
if(data == "loginok")
$('#myForm').submit();
});
return false;
}