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 ... } }); 

这需要根据您的喜好submitchange

您需要绑定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("") 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; } });