data-
öznitelikleri temel alınarak kurallar eklemeye çalışan jQuery validation eklentisini kullanıyorum. data-minlength
veya data-maxlength
tabanlı min/maxlength kurallarını ekliyorum. İşte bazı örnek HTML var:Bir döngü içinde veri özelliklerine dayalı jQuery doğrulama kuralları ekleme
<form>
<input name="input1" data-maxlength="5" data-minlength="3" required>
<input name="input2" data-maxlength="5" required>
<input name="input3" data-minlength="3" required>
<button>Submit</button>
</form>
Kuralları eklemek için yapıyorum ve düzgün şekilde çalışıyorsa:
$('input[data-minlength]').each(function(){
if ($(this).data('minlength')) {
$(this).rules("add", {
minlength: $(this).data('minlength')
});
}
});
$('input[data-maxlength]').each(function(){
if ($(this).data('maxlength')) {
$(this).rules("add", {
maxlength: $(this).data('maxlength')
});
}
});
Ama onu kısaltmak için istedim, bu yüzden bu denenmiş ve işe yaramıyor: $.validator.methods[method]
tanımsız olduğu için
['minlength', 'maxlength'].forEach(function(item){
$('input[data-'+item+']').each(function(){
if ($(this).data(item)) {
// alert(item) shows the correct rule name
$(this).rules("add", {
// Next line fails, but hardcoding a rule name works
item: $(this).data(item)
});
}
});
});
hatadır. alert(item)
, kural adının doğru olduğunu söylese bile, bir şekilde yanlış yöntem adı geçiyor.
Yukarıdaki yinelenen, çalışma kodunu kısaltmak için neden kullanabileceğimi veya neden alternatif bir çözüm bulabileceğimi bilen herhangi bir fikri var mı?
Demo: http://jsfiddle.net/kaVKe/1/
+1 Sadece birkaç saniye oldu ...;) – Yoshi
Teşekkürler, temel bir şey olduğunu biliyordum. Javascript benim güçlü bir nokta değil, hızlı açıklama için teşekkür ederiz. –