У меня есть форма, в которой, в зависимости от выбранного значения радиогруппы userAction, отображаются либо loginFields, либо signupFields.Кроме того, у меня есть два контейнера ошибок - errorMessageLogin и errorMessageSignup - для отображения сообщений об ошибках, соответствующих выбранному значению userAction:
<div id="errorsSection">
<div id="errorMessageLogin">
<!-- Login Error Messages go here -->
</div>
<div id="errorMessageSignup">
<!-- Signup Error Messages go here -->
</div>
</div>
<div id="contentSection">Lorem ipsum dolor sit amet...</div>
<div id="formSection">
<form id="myForm">
<input name="userAction" type="radio" value="login" checked="checked">Login</input>
<br />
<input name="userAction" type="radio" value="signup">Sign Up</input>
<div id="loginFields" style="display:none">
<!-- Login fields: email address and, password -->
</div>
<div id="signupFields" style="display:none">
<!-- Signup fields: name, age, email address, and password -->
</div>
</form>
</div>
Я использую плагин проверки jQuery , подобный этому:
$("#myForm").validate({
submitHandler: function (form) {
MyWebService.DoWork(form);
},
rules: myRules,
errorLabelContainer: null, // how to determine at runtime?
messages: myMessages,
highlight: function (element, errorClass) {
$(element).prev().addClass(errorIcon);
$(element).addClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
},
unhighlight: function (element, errorClass) {
$(element).prev().removeClass(errorIcon);
$(element).removeClass(errorClass);
$(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
}
});
Я выделяю недопустимые поля, изменяя класс элементов и добавляя рядом небольшую иконку;это прекрасно работаетОднако в дополнение к выделению я хотел бы отобразить сообщения, определенные в myMessages, либо в errorMessageLogin, либо в errorMessageSignup на основе выбора в радиогруппе userAction.Однако, похоже, что значение errorLabelContainer должно быть объектом jQuery, а не функцией, что вызывает сожаление, поскольку я смогу определить, какую ошибку показывать в функции.
Возможно ли это как-топереключить контейнер ошибок, который будет использоваться плагином jQuery Validation?