我想检查我输入的值是否大于或等于我的股票。我使用自定义规则jquery验证程序进行检查。当我在他们检查的所有输入中输入值时,我的代码出现问题,如果我决定更改我的第一个输入,则他不再希望检查它。他只检查我的最后输入,而不检查其他输入。
这是我的jsfiddle
我认为我的问题来自循环,但是我不确定!
非常感谢您的帮助。
<form id="form_Ajout" name="formulaire">
<table id="TableSelect">
<tbody>
<tr>
<th>name</th>
<th>price</th>
<th>qte</th>
</tr>
<tr>
<td class="tdQuantite"> Dell Latitude 7390</td>
<td><input type="text" size="5" data="qte" name="QUANTITE_300" value="" class="stock"> </td>
<td class="tdQuantite">74</td>
</tr>
<tr>
<td class="tdQuantite"> Dell Latitude 7490</td>
<td><input type="text" size="5" data="qte" name="QUANTITE_301" value="" class="stock"> </td>
<td class="tdQuantite">10</td>
</tr>
<tr>
<td class="tdQuantite"> Dell Latitude 5590</td>
<td><input type="text" size="5" data="qte" name="QUANTITE_302" value="" class="stock"> </td>
<td class="tdQuantite">100</td>
</tr>
</tbody>
</table>
<button type="submit" class="boutonValider" id="valid_form">Valider</button>
</form>
我的jquery代码。
$(document).ready(function() {
$(document).on('click', '#valid_form', function(e) {
e.preventDefault();
var Stock = $('#TableSelect tr:not(:first-child) td input').filter(function() {
return $(this).val() != '';
}).map(function() {
let parent = jQuery(this).closest("tr");
return {
quantite: parent.find("input").val(),
stockReel: parent.find("td:nth-child(3)").text()
}
});
var stockR, Quantite;
for(var i = 0 ; i < Stock.length; i++){
var stockR = Stock[i].stockReel;
var Quantite = Stock[i].quantite;
if (parseInt(Quantite) >= parseInt(stockR)){
console.log(' la quantité est ' +Quantite+ ' pour un restant de '+stockR);
}
}
jQuery.validator.addMethod("CheckStockReel", function(value, element) {
return this.optional(element) || (parseInt(value) <= parseInt(stockR));
}, " La quantité saisi est supérieure au stock réel.");
$('.stock').each(function() {
$(this).rules("add", {
CheckStockReel: true,
messages: {
required: " La quantité saisi est supérieur au stock réel.",
}
});
});
});
});
$("#form_Ajout").validate();