Я использую плагин Jquery valdiation для проверки формы на стороне клиента.Я получаю сообщения об ошибках проверки из xml-файла.
$("#"+form).validate({
errorLabelContainer: "#dialogError", //msg_error
wrapper: "li",
rules: {
txtInfringementID: {
required: true,
digits: true
},
txtLicenceNumber: {
required: true
},
txtDateOfOffence: {
date: true,
required: true
}
},
messages: {
txtInfringementID: {
required:this.errorMessage("InfringementID","Required"),
digits: "Inf Id must be numeric only"
},
txtDateOfOffence: {
required: "please enter date of offence",
date: "Date is not valid"
},
txtLicenceNumber:this.errorMessage("LicenceNumber", "Required"),
txtSurname: this.errorMessage("DebtorSurname", "Required")
}
)};
Функция errorMessage находится ниже.
this.errorMessage = function (Field, Rule) {
var message;
$.ajax({
type: "GET",
url: "../../../ErrorMessages.xml",
dataType: "xml",
success: function (xml) {
$(xml).find("*[Name='" + Field + "']").each(function () {
message = $(this).find(Rule).text();
});
}
});
return message; **//I am using a debugger here**
}
, и я использую xml
<?xml version="1.0" encoding="utf-8" ?>
<ErrorMessage>
<Field Name="InfringementID">
<Required>Infringement ID is required</Required>
<Digit>Infringement ID should be numeric only</Digit>
</Field>
<Field Name="LicenceNumber">
<Required>License Number is Mandatory</Required>
</Field>
<Field Name="DebtorSurname">
<Required>Debtor Surname is Mandatory</Required>
</Field>
</ErrorMessage>
Но проблема в том, что когда я использую отладчик, я получаю сообщения из XML.Если я не использую отладчик, я получаю сообщение по умолчанию «это поле обязательно для заполнения».Я думаю, проблема в this.errorMessage()
- это асинхронный запрос, и этот запрос занимает некоторое время.Я попытался установить некоторую задержку с помощью функции setTimeout .но я не знаю, где поставить задержку.Любой мыслительный процесс приветствуется.
Я устанавливаю таймаут следующим образом.
required:setTimeout(this.errorMessage("InfringementID","Required"),10000),