jQuery匹配模式
我正在尝试在发送表单之前使用jQuery validation我的输入。
当数据库中没有插入值时,这就是我的输入字段:
当数据库中插入现有值时,这就是我的输入字段:
我想要:
-
检查该值是否已存在于数据库中
-
检查用户是否要将现有值替换为零或零,并禁止它。
-
检查用户是否尝试在新字段中插入0并禁止它。
解决了:
$("input[name^='input_"+var+"_']") .each(function() { if ($(this).attr('name').match(/^input_\d+_\d+_\d+_\d+/) && ($(this).val() == '' || $(this).val() <= 0)) { displayDialog("") flag_error = 1; return false; } }); // Submit the form.
试试这个:
$('input[name]') .filter (function () { return $(this).attr('name').match (/^input_\d+_\d+_\d+_.+/$); }) .each (function () { if ($(this).val() <= 0) { //... raise a fuss ... } });
这需要根据您的喜好submit
或change
。
您需要绑定keydown事件并检查密钥代码。 此示例将禁用空格和输入字段中的0 char,其name属性以’_’结尾:
$('input[name$=_]').bind('keydown', function(e) { var key = e.keyCode || e.which; if (key == 48 || key == 32) { e.preventDefault(); } })
$("input[name^='input_"+var+"_']") .each(function() { if ($(this).attr('name').match(/^input_\d+_\d+_\d+_\d+/) && ($(this).val() == '' || $(this).val() <= 0)) { displayDialog("=_('error')?>") flag_error = 1; return false; } });
您可能会受益于jQuery插件的正则表达式选择器 。 它允许代码如下:
$('div:regex(input,^input_(\d+|)+_?$)'); //just an example regex
另请注意,您可以组合多个属性选择器,即:
$("input[name^='input_'][name$='_']")
将类“my_very_special_input”添加到要以此方式validation的每个输入元素:
$(".my_very_special_input").change( function() { if ($(this).val() <= 0) { alert('You cant delete this'); flag_error = 1; return false; } });