如何使用jQuery检查具有特定值的自定义属性的输入字段

时间:2015-05-12 05:55:45

标签: jquery html

我有自定义属性的输入字段。我想检查具有自定义属性的输入字段是否具有特定值,然后警报匹配,否则不匹配。

(function ($) {
    $(".my_class").click(function () {
        var custom_attr = $(this).attr('custom_attr');
        $("input").each(function () {
            var condation = $(this).attr('condation');
            if (condation == custom_attr) {
                alert('match');
            } else {
                alert('not match');
            }
        });
    });
})(jQuery);

JS Fiddle Link

1 个答案:

答案 0 :(得分:2)

我认为您可以尝试像

这样的正则表达基础测试

if (!RegExp.escape) {
  RegExp.escape = function(value) {
    return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
  };
}

(function($) {
  $(".my_class").click(function() {
    var custom_attr = $(this).attr('custom_attr');
    var regex = new RegExp(custom_attr.split(/\s+/).map(function(value) {
      return '(\\b' + RegExp.escape(value) + '\\b)'
    }).join('|'));
    $('input').each(function() {
      var condation = $(this).attr('condation');
      if (regex.test(condation)) {
        alert('match');
      } else {
        alert('not match');
      }
    });
  });
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
  <button type="button" name="abc" class="my_class" custom_attr="field1 field2">Match</button>
</div>
<div>
  <input name="def" condation="field1 user_defined" />
  <input name="jkl" condation="field2 user_defined" />
  <input name="jkl" condation="field13 user_defined" />
</div>