0

行内の他のセルの 1 つに値がある場合、テーブル行内の 1 つの入力の値を取得しようとしています。ここでの目標は、ユーザーが受け取った金額を行に入力した場合、受け取った日付が必要になることです。したがって、送信時にすべての行を調べて、現在のセルのエントリを確認してから、日付セルの日付を確認します。支払いエントリの行が複数あります。HTMLは次のとおりです。

       <div class="new_payments">
        <tr>
            <td>
                <input type="text" 
                name="new_payments[<?php echo $s ?>][payment_date]"
                class="payment_date" 
                size='10' maxlength="10" 
                > 
            </td>                                
            <td>                            
                <input type="text" 
                name="new_payments[<?php echo $s ?>][credit_card]"
                class="credit_received"                               
                size="8">
            </td>  
            <td>
                <input type="text" 
                name="new_payments[<?php echo $s ?>][check]"
                class="check_received" 
                size="8">            
            </td>
            <td>
                <input type="text"  
                name="new_payments[<?php echo $s ?>][cash]"
                class="cash_received" 
                size="8">             
            </td>
        </tr>
    </div>

これは私が使用しているjQueryです(まだ「this」の値のチェックを追加していません)、期待どおりの結果が得られているかどうかを確認します。悲しいことに、私は「未定義」になっています:

    jQuery('input:text.cash_received').each (function() {
       var $theDate  = jQuery(this).closest('div.new_payments').find('.payment_date').attr('value');
       alert('the closest date value is ' + $theDate );
}); 

親に移動して、探している要素を見つけるという概念を理解したと思いました。どうやらそうではありませんか?あなたの素晴らしい助けをありがとう!

4

1 に答える 1

0

これはテストされ、機能しています。値がある場合にのみアラートを出し.cash_receivedます。テスト用の入力に値を追加しました。divラッパーの削除にも注意してください。クラスをTRに追加しました

jQuery(document).ready(function(){
    jQuery('input[type=text][value!=""].cash_received').each (function() {
        var myval= jQuery(this).parents('.new_payments').find('.payment_date').val();
           alert('the closest date value is ' +myval);
    });
});



    <tr class="new_payments">
        <td>
            <input type="text" 
            name="new_payments[<?php echo $s ?>][payment_date]"
            class="payment_date" value='this should alert'
            size='10' maxlength="10" 
            > 
        </td>                                
        <td>                            
            <input type="text" 
            name="new_payments[<?php echo $s ?>][credit_card]"
            class="credit_received"                               
            size="8">
        </td>  
        <td>
            <input type="text" 
            name="new_payments[<?php echo $s ?>][check]"
            class="check_received"
            size="8">            
        </td>
        <td>
            <input type="text"  
            name="new_payments[<?php echo $s ?>][cash]"
            class="cash_received" value='this input has a value'
            size="8">             
        </td>
    </tr>
于 2012-01-13T16:40:07.327 に答える