ближайший вход в div родитель - PullRequest
0 голосов
/ 13 января 2012

Я пытаюсь получить значение одного ввода в строке таблицы, ЕСЛИ одна из других ячеек в строке имеет значение.Цель здесь состоит в том, чтобы, если пользователь ввел полученные деньги в строку, тогда требуется дата получения.Итак, при отправке я хочу просмотреть все строки и проверить запись в текущей ячейке, а затем проверить дату в ячейке даты.Есть несколько строк для ввода платежа.Вот 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'), чтобы узнать, получаю ли я ожидаемый результатК сожалению, я получаю «undefined»:

    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 );
}); 

Я подумал, что понял концепцию перехода к родителю, а затем найти элемент, который вы ищете.Очевидно нет?Спасибо за вашу отличную помощь!

1 Ответ

0 голосов
/ 13 января 2012

это проверено и работает. он будет только предупреждать, если .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>
...