1

次のhtmlコードがあります。

<form>
    <table>
    <tbody>
        <tr>
            <td>
               <span>Quantity<span class="pull-right">3</span>
               <input type="hidden" class="" value="3" name="quantity[]">
           </td>
           <td class="form-inline">
                <label>Cantidad Warehouse</label>
                <input id="qty_warehouse_1" type="text" name="cantidad_despacho[]" class="required input-mini">
           </td>
        </tr>
        <tr>
        <tr>
            <td>
               <span>Quantity<span class="pull-right">5</span>
               <input type="hidden" class="" value="5" name="quantity[]">
           </td>
           <td class="form-inline">
                <label>Cantidad Warehouse</label>
                <input id="qty_warehouse_2" type="text" name="cantidad_despacho[]" class="required input-mini">
           </td>
        </tr>
        <tr>
    </tbody>
</table>
            <button id="submit" value="send" name="button">Send</button>
</form>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

各行が動的に生成される場所。Qty_warehouseという名前の入力ごとに検証を実行する必要があるため、その最大値は同じ行の非表示の値よりも大きくなりません。これは私がやろうとしてきたことです:

$(document).ready(function() {
    $("form").validate();
    $("[id*='qty_warehouse']").rules("add", {
        required: true,
        max: function() {
        return $(this).parents("tr").eq(0).find("input[name='quantity[]']").val();
        },
        min: 0,
        messages: {
            required: "Introduzca la cantidad disponible en despacho"
        }
    });

    $("#submit").click(function() {
        alert($("form").valid());
    });
});​

どんな助けでも大歓迎です。これは、いくつかのテストを行いたい場合のフィドル リンクです。フィドル

4

1 に答える 1

2

maxあなたの関数内thisでは、あなたが思っているものではありませんwindow. 確認するには、関数内で呼び出しconsole.log(this)て、ブラウザー コンソールで調べるだけです。

element の引数を max 関数に追加し、それを使用してトラバースを開始します。また、入力値を数値に変換します。

  max: function(element) {
        var max=   $(element).parents("tr").eq(0).find("input[name='quantity[]']").val();    
        return 1*max;
    }

デモ: http://jsfiddle.net/wHdKt/1/

于 2012-06-16T13:57:45.793 に答える