Вот что я пытаюсь сделать.
Когда в моей форме нажимается форма «Отправить», функция javascript будет перебирать все поля формы.
Для каждого поля будет вызываться функция, которая будет возвращать true
/ false
, чтобы указать, правильно ли она была заполнена или нет.
Если возвращается false
, рядом с этим полем отображается сообщение об ошибке.
Если все поля верны, он отправляет форму. Если нет, он не отправляет.
Вот сложная часть. Хотя большая часть проверки выполняется с помощью javascript, имя пользователя и адрес электронной почты должны быть подтверждены с помощью ajax, чтобы узнать, используется ли имя пользователя / адрес электронной почты или нет.
Структура, которую я сейчас использую для этой функции ajax, выглядит примерно так:
function validateSomething()
{
var valid;
$.post("something.php", {x:y},
function(data)
{
if (isSomething(data))
valid=true;
//Here referring to the valid variable
//set outside this function, in the
// parent function
else
valid=false;
});
return valid/
}
Но в настоящее время это не работает.
Что я могу сделать, чтобы заставить его работать, т.е. я могу остановить функцию validateSomething () от возврата значения, пока внутренняя функция не установит значение true / false?
Хотелось бы что-то вроде этой работы:
function validateSomething()
{
var valid="unset";
$.post("something.php", {x:y},
function(data)
{
if (isSomething(data))
valid=true;
//Here referring to the valid variable
//set outside this function, in the
// parent function
else
valid=false;
});
//Loop without returning until valid is set to true or false
while (valid=='unset')
{
//Do nothing?
}
return valid/
}