我的Jquery代码基本上验证了复制粘贴时文本框的值 此代码适用于多个页面中的许多输入字段。所有页面都使用通用JavaScript文件和通用布局页面
var regex = /^[A-Za-z0-9AEIOUaeiou\.\-\~\`\'']*$/;
$('#InputField1').bind('input propertychange', function () {
var value = $(this).val();
if (!regex.test(value)) {
$(this).val("");
}
});
而不是在每个页面上写这个,有没有办法让这个代码更通用?也就是说,代码的以下部分是否只能在布局页面或JavaScript页面上的某处写入?
var value = $(this).val();
if (!regex.test(value)) {
$(this).val("");
}
答案 0 :(得分:3)
使它全部通用。所有验证元素都应具有相同的css类,例如.requires-validation以识别它们。然后您可以通用方式选择它们:
var regex = /^[A-Za-z0-9ĀĒĪŌŪāēīōū\.\-\~\`\'']*$/;
$('.requires-validation').bind('input propertychange', function () {
var value = $(this).val();
if (!regex.test(value)) {
$(this).val("");
}
});
答案 1 :(得分:1)
这是jQuery的一个很棒的东西。您可以在全局JavaScript文件中执行此操作:
(function($){
$.fn.validatePropertyChange = function() {
return this.each(function() {
var self = $(this);
var regex = /^[A-Za-z0-9ĀĒĪŌŪāēīōū\.\-\~\`\'']*$/;
$(self).bind('input propertychange', function () {
var value = $(this).val();
if (!regex.test(value)) {
$(this).val("");
}
});
});
};
})(jQuery);
然后打电话:
$('#InputField1').validatePropertyChange();
你也可以链接ID,例如:
$('#InputField1, #InputField2').validatePropertyChange();
并使用CSS选择器
$('.required-field').validatePropertyChange();