JQuery Validation Plugin Remote Rule
09.08.2015
Пример содержимого файла validation.js
(function($) {
$(document).ready(function(){
$.validator.addMethod("regexp", function (value, element) {
if($(".checkbox-item-1").is(":checked"))
return this.optional(element) || /^[0-9]+$/.test(value);
else
return true;
}, 'Разрешено вводить только числа.');
$("form.settings-form").validate({
rules: {
id: {
// Добавляем зависимость от чекбокса, иначе required: true
required: function () {
return $(".checkbox-item-1").is(":checked");
},
regexp: true
},
captcha: {
required: function () {
return $(".checkbox-item-1").is(":checked");
},
remote: {
param: {
type: 'post',
url: '/ajax/validator',
complete: function(data){
if( data.responseJSON === true ) {
$('input[name="captcha"]').parents('.has-feedback').removeClass("has-error");
}
}
},
depends: function() {
return $(".checkbox-item-1").is(":checked");
}
}
}
},
messages: {
captcha: {remote: "Ошибка!"}
},
// Изменяем вывод ошибки
errorElement: "span",
errorPlacement: function(error, element) {
error.appendTo(element.parents('.has-feedback').find('.middle'));
},
highlight: function(element) {
$(element).parents('.has-feedback').addClass("has-error");
},
unhighlight: function(element) {
$(element).parents('.has-feedback').removeClass("has-error");
}
});
});
})(jQuery);
Содержимое /ajax/validator
< ?php
if (!empty($_POST['captcha']))
{
if($_POST['captcha'] == 'test')
{
echo "true";
}
else
{
echo "false"; // error
}
}
else
{
echo "false"; // error
}
?>
#JQuery
