У меня есть 2 метода addMethods, примененных к одному блоку ввода
Примечание: мне нужны 2 сообщения об ошибках, такие как пустая ошибка и действительный URL, если одно из них недопустимо в одном addMethod.
1 - требуется проверка 2 - проверка правильности URL.
Есть ли способ объединить оба и получить одинаковый результат?
jQuery.validator.addMethod("complete_req", function (val, elem) {
var value = $.trim($("#linkTypeDd").val());
if (value == "2")
{
if (val.length == 0) {
return false;
}
return true;
}
},"");
jQuery.validator.addMethod("complete_url", function (val, elem) {
var value = $.trim($("#linkTypeDd").val());
if (value == "2") {
// if no url, don't do anything
if (val.length == 0) {return true;}
// if user has not entered http:// https:// or ftp:// assume they mean http://
if (!/^(https?|ftp):\/\//i.test(val)) {
val = 'http://' + val; // set both the value
$(elem).val(val); // also update the form element
}
// now check if valid url
// http://docs.jquery.com/Plugins/Validation/Methods/url
return "Suppose this is url rejex";
}
return true;
});
jQuery.validator.messages.required = "";
var validator = $("#footer-form").validate({
debug: true,
submitHandler: function (form) {
$(form).ajaxSubmit(formoptions);
},
invalidHandler: function (e, validator) {
var errors = validator.numberOfInvalids();
if (errors) {
var message = errors == 1 ? 'You missed 1 field. It has been highlighted.' : 'You missed ' + errors + ' fields. They have been highlighted.';
showMessage("#error", message);
$("#success").hide();
}
else {
$("#error").hide();
}
},
rules:
{
DisplayName: "required",
UrlName: "required",
ExternalPath: {
complete_req : true,
url: "complete_url"
}
},
errorClass: "invalid",
validClass: "valid",
errorContainer: "#error"
});