我无法使用jQuery将结算地址复制到送货地址。我已经使用没有自定义jQuery元素的普通jane形式成功完成了这项工作。但是当我将自定义UI添加到复选框时,它似乎打破了代码。我尝试了几个代码更改,但没有一个正在运行。
当用户点击“我的帐单邮寄地址与我的送货地址相同”时,不会发生任何事情。这是我的jQuery代码:
<script type="text/javascript">
$(document).ready(function(){
$('#check-address').click(function(){
if($('#check-address').attr('checked')){
$('#address-field1').val($('#address-field').val());
$('#city-field1').val($('#city-field').val());
$('#zip-field1').val($('#zip-field').val());
var state = $('#state-field option:selected').val();
$('#state-field1 option[value=' + state + ']').attr('selected','selected');
} else {
//Clear on uncheck
$('#address-field1').val("");
$('#city-field1').val("");
$('#zip-field1').val("");
$('#state-field1 option[value=Nothing]').attr('selected','selected');
};
});
});
</script>
非常感谢任何帮助!
答案 0 :(得分:5)
您用来美化复选框(或其中的任何内容)的插件正在替换<input type="checkbox"/>
上的div
和模拟事件。
它不传播click
事件,但 传播change
,所以你应该倾听它; < / p>
$('#check-address').change(/* function */);
为了改进您的代码,您可能希望将attr('checked')
替换为prop('checked')
替换,但您的代码仍然可以正常工作。 prop()
的jQuery文档中概述了这方面的原因; http://api.jquery.com/prop
答案 1 :(得分:4)
$('#check-address').attr('checked')
应该可以
$('#check-address').is(':checked')
<小时/> 正如评论中所指出的,有很多方法可以让这只猫受到伤害。 http://jsfiddle.net/sRt6G/1/
this.checked
似乎是最简单的。
答案 2 :(得分:4)
您正在使用jquery 1.7。你应该使用prop而不是attr
$('#check-address').prop('checked')
$(elem).attr('checked') // returned true (Boolean) prior to 1.6
$(elem).attr('checked') // now returns "checked" (string) versions after 1.6
$(elem).prop('checked') // now returns true (Boolean) versions after 1.6
答案 3 :(得分:1)
可能是您正在尝试复选框的点击事件。你试过了吗?
$('#check-address').on('change', function (e) {...
和
if ($('#check-address').is(":checked")....
答案 4 :(得分:1)
这也可能有所帮助。
$('input[name=city\\[' + this.value + '\\]]').val($('input[name=city\\[1\\]]').val());
在顶部填写表格,然后使用复选框复制字段的值。
它适用于动态创建的字段。如果表单是硬编码的,请将this.value
替换为字段索引。
答案 5 :(得分:0)
您可能想尝试以下代码: $(&#34; input.billingAddress&#34)。在(&#34;变更&#34;,函数(){
var val1 = $("input.street").val();
var val2 = $("input.suitNumber").val();
var val3 = $("input.city").val();
if(this.checked)
{
$("input.streetb").val(val1);
$("input.suitNumberb").val(val2);
$("input.cityb").val(val3);
}
else
{
$("input.streetb").val("");
$("input.suitNumberb").val("");
$("input.cityb").val("");
}
});