我尝试了文章中的每个解决方案one https://stackoverflow.com/questions/4115372/jquery-validate-plugin-adding-a-custom-validator-to-accept-letters-only, two https://stackoverflow.com/questions/11999039/jquery-validation-form-ensure-no-numbers-in-first-and-last-name-input-only-let , three https://stackoverflow.com/questions/44473889/validate-form-field-for-containing-only-letters-using-bootstrap-validator然而在我的示例项目 https://information-contact.000webhostapp.com/,我仍然可以在名字字段中输入数字或规格字符。
我尝试过的六件事以上:
$.validator.setDefaults({ submitHandler: function(form) { form.submit(); } });
jQuery.validator.addMethod("regex", function(value, element, param) { return value.match(new RegExp("^" + param + "$")); });
var ALPHA_REGEX = "[a-zA-Z]*";
jQuery.validator.addMethod("accept", function(value, element, param) {
return value.match(new RegExp("." + param + "$"));
});
function isValid(value)
{
var fieldNum = /^[a-z]+$/i;
if ((value.match(fieldNum))) {
return true;
}
else
{
return false;
}
}
$(document).ready(function() {
$('#contact_form').bootstrapValidator({
fields: {
first_name:
{
validators: {
field: { accept: "[a-zA-Z]+" },
regex: ALPHA_REGEX,
lettersonly:true,
required: true,
pattern: "^[a-zA-Z_]*$",
stringLength: {
min: 2,
},
notEmpty: {
message: 'Please supply your first name',
callback: function(value, validator, $field) {
if (!isValid(value)) {
return {
valid: false,
};
}
else
{
return {
valid: true,
};
}
}
},
我确信我错过了一些简单的东西或者可能使用了稍微过时的 jQuery 库?编辑:实际上我只是尝试使用该库的其他版本但没有成功。