jQuery验证自定义规则输入大于

时间:2019-12-03 20:36:34

标签: jquery validationrules

我想检查我输入的值是否大于或等于我的股票。我使用自定义规则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));
        }, "&nbsp;  La quantité saisi est supérieure au stock réel.");


        $('.stock').each(function() {
            $(this).rules("add", {

                CheckStockReel: true,
                messages: {
                    required: "&nbsp; &nbsp; La quantité saisi est supérieur au stock réel.",
                }
            });


        });

    });
});

$("#form_Ajout").validate();

0 个答案:

没有答案