检查输入值是否等于来自数据属性的未知单词列表

问题描述 投票:1回答:2

我正在对单词进行简单,基本的验证,但不知何故它不起作用。这就是我所拥有的:

HTML:

<div class="customfixer">
   <li data-folder="something">something</li>
   <li data-folder="random name">random name</li>
   <li data-folder="my news">my news</li>
   <!-- etc.. 100+ more of unique folder names -->
</div>

<input type="submit" class="submitasvalid" name="submit" value="Create folder" />

jQuery的:

$('input.newfoldername').on('input', function() {

  var lopinys = $('input.newfoldername').val();

  $('.customfixer').each(function() {

    var validacija = $(this).find('li').data('folder');

    if(lopinys == validacija) {
      // alert if folder name exists in the list
    }
    else{
      // alert if folder name does not exists in the list
    }

  });

});

我知道有些事情是坏的,因为有时它会起作用,但有时却不行。

题:

如果输入值等于来自数据属性的未知单词列表,如何检查?如果平等 - 做点什么。

谢谢你的任何答案,抱歉英语不好。

jquery validation input
2个回答
2
投票

要检查data-*属性是否存在于一组元素上,您可以使用filter()并检查结果集的length。试试这个:

$('input.newfoldername').on('input', function() {
    var lopinys = $('input.newfoldername').val();

    $('.customfixer').each(function() {
        var exists = $(this).find('li').filter(function() {
            return $(this).data('folder') == lopinys;
        }).length != 0;

        if (exists) {
            console.log(lopinys + ' exists');
        } else {
            console.log(lopinys + ' does not exist');
        }
    });
});

Working example


0
投票

我想你想在点击提交按钮时检查输入值。如果是这种情况,请尝试以下方法:

HTML:

<div class="customfixer">
   <li data-folder="something">something</li>
   <li data-folder="random name">random name</li>
   <li data-folder="my news">my news</li>
   // etc.. 100+ more of unique folder names
</div>
<input type="text" name="input-name" class="newfoldername" />
<input type="submit" class="submitasvalid" name="submit" value="Create folder" />

jQuery:

   $('input.submitasvalid').on('click', function() {

  var lopinys = $('input.newfoldername').val(); // you must have

  $('.customfixer li').each(function() {

var validacija = $(this).find('li').attr('data-folder');

if(lopinys === validacija) {
    alert('Value matches with input');
  // alert if folder name exists in the list
}
else{
    alert('Value does not match with input');
  // alert if folder name does not exists in the list
}

 });

});
© www.soinside.com 2019 - 2024. All rights reserved.