答案 0 :(得分:2)
您似乎没有正确掌握兄弟姐妹()运算符。您还没有使用jQuery的val()函数,并且在某些类名上缺少句点。要找到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('');
}
}
答案 1 :(得分:1)
尝试获取输入:text .val()
而不是
答案 2 :(得分:1)
第9行,不应该是var checkbox = $(this);
吗?我没有看到像这样使用的jQuery()函数。
答案 3 :(得分:0)
因为<input class="address1"/>
不是<input id="parent_sameAsBefore"/>
的兄弟。我想你想要:
checkbox.parent().parent().find('.address1');
答案 4 :(得分: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;
答案 5 :(得分:-1)
alert(checkbox.siblings('。address1')。html()); //这应该是
alert(checkbox.parent()。siblings('。address1')。html());
// Checkbox没有兄弟姐妹 第10行