0

HTML形式で一連の入力と選択が混在しています。

<th><input type="text" id="bGroup" name="search_group"   /></th>
<th><input type="text" id="bEvent" name="search_event"   /></th>
<th><input type="text" id="bBenefactor" name="search_benefactor"   /></th>
<th><select name="search_status" id="bStatus">      
        <option value=""></option>      
        <option value="RS">RS</option>                  
        <option value="CAN">Cancelled</option>                  
        <option value="ICR">ICR</option>                    
        <option value="HLD">Holding</option>            
        <option value="DEN">Denied</option>                 
    </select>
 </th>
<th><input type="text" id="bGiving" name="search_giving"   /></th>

JQuery 関数を使用してフォーム要素のインデックスを呼び出そうとしています。フォーム入力のみを使用し、次のように選択しない場合、これは正常に機能します。

$("tfoot input").keyup( function () {
        /* Filter on the column (the index) of this element */  
        oTable.fnFilter( this.value, $("tfoot input").index(this) );
    } );

両方のフォーム入力要素を使用する場合は、次のように手動でインデックスを割り当てる必要があります。

$("tfoot input#bGroup").keyup( function () {
        /* Filter on the column (the index) of this element */  
        //alert($("tfoot input").index(this));
        oTable.fnFilter( this.value, 1 );
    } );
... 
$("tfoot select#bStatus").on('change',  function () {
        /* Filter on the column (the index) of this element */  
        //  alert($("tfoot select").parent().index(this));
        oTable.fnFilter( this.value, 4 );
    } );

これは私の利点ではありません。

私がやりたいのは、両方のフォーム要素にインデックスを付けて、行を手動で割り当てたり、一連の関数を記述したりする必要がないことです。フィールドセットを使用してみましたが、うまくいきませんでした。

$("tfoot fieldset").on('keyup change', function () {
        /* Filter on the column (the index) of this element */  
        oTable.fnFilter( this.value, $("tfoot fieldset").index(this) );
    } );

どんな助けでも大歓迎です。

4

1 に答える 1

2

入力要素と選択要素の両方を選択し、それに基づいて次のようにインデックスを取得できます。

 $("input, select", "tfoot").index(this)
于 2013-06-11T20:24:50.030 に答える