我正在对单词进行简单,基本的验证,但不知何故它不起作用。这就是我所拥有的:
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
}
});
});
我知道有些事情是坏的,因为有时它会起作用,但有时却不行。
题:
如果输入值等于来自数据属性的未知单词列表,如何检查?如果平等 - 做点什么。
谢谢你的任何答案,抱歉英语不好。
要检查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');
}
});
});
我想你想在点击提交按钮时检查输入值。如果是这种情况,请尝试以下方法:
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
}
});
});