JQuery validate plugin: принимать буквы только?
Я использую плагин validate из http://bassistance.de/jquery-plugins/jquery-plugin-validation/
То, что я пытаюсь найти, - это способ сделать некоторые из моих полей формы принятыми буквами, номерами, специальными символами и т.д.
Любые идеи людей?
Большое спасибо.
Ответы
Ответ 1
Просто добавьте пользовательский валидатор и используйте его следующим образом:
jQuery.validator.addMethod("accept", function(value, element, param) {
return value.match(new RegExp("." + param + "$"));
});
Только числа:
rules: {
field: { accept: "[0-9]+" }
}
Только буквы
rules: {
field: { accept: "[a-zA-Z]+" }
}
Ответ 2
Небольшое изменение.
jQuery.validator.addMethod("accept", function(value, element, param) {
return value.match(new RegExp("^" + param + "$"));
});
Потому что он принимал выражения типа "#abc".
Ответ 3
Используйте код ниже в script.
это добавит новое предложение к вашему валидатору.
$.validator.addMethod(
"alphabetsOnly",
function(value, element, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
},
"Please check your input values again!!!."
);
$("#formElement").rules("add", {alphabetsOnly: "^[a-zA-Z'.\\s]$" })
Ответ 4
Попробуйте вот так:
var numbers = /[0-9]+/;
var SpCharacters = /^\s*[a-zA-Z0-9\s]+\s*$/;
if (!numbers.test(name) && !SpCharacters.test(name)) {
return [false, "Name should be alphabetical.", ""];
}
Ответ 5
Следующий метод для добавления настраиваемого валидатора работает отлично, но проверка выполняется на клавиатуре, поэтому ошибка продолжает появляться, когда пользователь печатает текст.
return value.match(new RegExp(""));
Этот метод отлично подходит для алфавитов и пространств, идеально подходит для полей имен.
jQuery.validator.addMethod("alphabetsAndSpacesOnly", function (value, element) {
return this.optional(element) || /^[a-zA-Z\s]+$/.test(value); });
$("FieldId").rules("add", {
alphabetsAndSpacesOnly: true,
messages: { alphabetsAndSpacesOnly: "Please enter a valid name." }
});
Ответ 6
Плагин jQuery Validate уже имеет правило под названием lettersonly
как часть файла additional-methods.js
, который выглядит следующим образом...
$.validator.addMethod( "lettersonly", function( value, element ) {
return this.optional( element ) || /^[a-z]+$/i.test( value );
}, "Letters only please" );
Ответ 7
Добавить cdn
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/additional-methods.js"></script>
rules:{
txtname:{required: true,
lettersonly:true
}
Ответ 8
Попробуйте это: (Это идеальная пользовательская проверка с помощью jquery validator)
$(function() {
$.validator.addMethod("alphabetsnspace", function(value, element) {
return this.optional(element) || /^[a-zA-Z ]*$/.test(value);
});
$("#add-employee").validate({
rules: {
employee_surname: {
required: true,
alphabetsnspace: true
},
employee_firstname: {
required: true,
alphabetsnspace: true
},
employee_othername: {
alphabetsnspace: true
},
father_name: {
required: true,
alphabetsnspace: true
},
mother_name: {
required: true,
alphabetsnspace: true
},
spouse_name: {
alphabetsnspace: true
},
ssn: {
number: true,
},
phone_no: {
number: true,
},
phone_no2: {
number: true,
},
passport: {
number: true,
},
driving_license: {
number: true,
},
email: {
email: true
}
},
messages:
{
"employee_surname":{
alphabetsnspace: "Please Enter Only Letters"
},
"employee_firstname":{
alphabetsnspace: "Please Enter Only Letters"
},
"employee_othername":{
alphabetsnspace: "Please Enter Only Letters"
},
"father_name":{
alphabetsnspace: "Please Enter Only Letters"
},
"mother_name":{
alphabetsnspace: "Please Enter Only Letters"
},
"spouse_name":{
alphabetsnspace: "Please Enter Only Letters"
},
}
});
});