帐单地址与送货地址jQuery相同

thr*_*ee3 7 javascript jquery jquery-ui

我无法使用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>
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!

Joe*_*Joe 5

选项演示

$('#check-address').attr('checked')
Run Code Online (Sandbox Code Playgroud)

应该

$('#check-address').is(':checked')
Run Code Online (Sandbox Code Playgroud)


正如评论中指出的,有很多方法可以给这只猫蒙皮。http://jsfiddle.net/sRt6G/1/ this.checked似乎是最简单的。


Pit*_*ger 5

您正在使用 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
Run Code Online (Sandbox Code Playgroud)


Mat*_*att 5

你用来美化你的复选框(或它做的任何事情)的插件正在替换<input type="checkbox"/>a div,并在复选框上模拟事件.

它不传播一个click事件,但确实传播了一个事件,change所以你应该倾听它;

$('#check-address').change(/* function */);
Run Code Online (Sandbox Code Playgroud)

为了提高你的代码,你可能要代替支票attr('checked')prop('checked'),但你的代码仍然会不顾工作.有关这方面的原因在jQuery文档中列出prop(); http://api.jquery.com/prop