2009-11-30 3 views

ответ

1

попробуйте запросить ввод: вместо

+0

Хорошая идея , да, но не имеет никакого отношения к тому, почему функция siblings() ничего не находит. – tvanfosson

2

Вы, кажется, не имеют надлежащего схватывание братьев и сестер() оператора TEXT в .val(). Вы также не использовали функцию val() jQuery и отсутствовали периоды для некоторых ваших имен классов. Чтобы найти класс ADDRESS1 вам нужно будет сделать следующее:

var $checkbox = jQuery(this); 
$checkbox.parent().siblings('.formField').find('.address1'); 

Кроме того, вы хотите, чтобы быть начеку

alert($checkbox.parent().siblings('.formField').find('.address1').val()); 

предупредить значение поля ввода.

Фиксированные и оптимизированная версия:

function update_address(eventObject) { 
    var $checkbox = jQuery(this); 
    var $siblings = $checkbox.parent().siblings('.formField'); 
    if ($checkbox.attr('checked')) { 
     $siblings.find('.address1').val($('.hidden_address1').val()); 
     $siblings.find('.address2').val($('.hidden_address2').val()); 
     $siblings.find('.city').val($('.hidden_city').val()); 
     $siblings.find('.state').val($('.hidden_state').val()); 
     $siblings.find('.zip').val($('.hidden_zip').val()); 
     $siblings.find('.province').val($('.hidden_province').val()); 
     $siblings.find('.country').val($('.hidden_country').val()); 
    } else { 
     $siblings.find('.address1').val(''); 
     $siblings.find('.address2').val(''); 
     $siblings.find('.city').val(''); 
     $siblings.find('.state').val(''); 
     $siblings.find('.zip').val(''); 
     $siblings.find('.province').val(''); 
     $siblings.find('.country').val(''); 
    }  
} 
0

Поскольку <input class="address1"/> не родственный <input id="parent_sameAsBefore"/>. Я думаю, что вы хотите:

checkbox.parent().parent().find('.address1'); 
1

В строке 9, она не должна быть var checkbox = $(this); вместо этого? Я не видел используемую функцию jQuery().

+0

urm ... jQuery === $ – James

+2

Возможно, вы используете jQuery в режиме 'noConflict', здесь: http://docs.jquery.com/Using_jQuery_with_Other_Libraries – Pablo

+0

вы знаете, что $ == jQuery? –

-1

alert (checkbox.siblings ('. Address1'). Html()); // Это должно быть

alert (checkbox.parent(). Siblings ('. Address1'). Html());

// Checkbox не имеет братьев и сестер Line 10

+0

'' Элементы должны быть пустыми. В HTML вам не нужно явно закрывать их, но в XHTML вам нужно «самостоятельно закрыть» их. то есть '' – James

+0

@ J-P: Спасибо за наблюдение. Он пытается получить братьев и сестер. Он получит поле null null, у которого нет братьев и сестер. – Tebo

0

Почему бы просто не пойти с нахождением поля формы, используя абсолютный путь? Если ваш DOM очень запутан (и вам нужны относительные пути), я бы предпочел этот подход сам.

Также используйте .val() для получения и установки значений.

function update_address(eventObject) { 
    if($(this).attr('checked')) { 
    $('#parent_address1').val($('hidden_address1').val()); 
    $('#parent_address2').val($('hidden_address2').val()); 
    $('#parent_city').val($('hidden_city').val()); 
    $('#parent_state').val($('hidden_state').val()); 
    $('#parent_zip').val($('hidden_zip').val()); 
    $('#parent_province').val($('hidden_province').val()); 
    $('#parent_country').val($('hidden_country').val()); 
    }  
    else { 
    $('#parent_address1').val(""); 
    $('#parent_address2').val(""); 
    $('#parent_city').val(""); 
    $('#parent_state').val(""); 
    $('#parent_zip').val(""); 
    $('#parent_province').val(""); 
    $('#parent_country').val(""); 
    }  
} 

Обратите внимание, кажется, ошибка в исходном коде в строке 15:

checkbox.siblings('.tate').value = $('hidden_state').value; 

Должно быть:

checkbox.siblings('.state').value = $('hidden_state').value; 
+0

Если режим noConflict действует, просто замените $ jQuery в приведенном выше коде –

+0

, вероятно, checkbox.siblings ('. State'). Val() = $ ('hidden_state'). Val(); ??? –

+0

Это было бы лучше, но ошибка отсутствовала в состоянии :) –

Смежные вопросы