7

jQueryを使用して請求先住所を配送先住所にコピーするのに問題があります。カスタムjQuery要素のないプレーンジェーンフォームを使用してこれを正常に実行しました。しかし、チェックボックスにカスタム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>

どんな助けでも大歓迎です!

4

6 に答える 6

5

チェックボックス(またはそれが行うこと)を美化するために使用しているプラ​​グインは、をに置き換え、<input type="checkbox"/>チェックボックスのイベントdivシミュレートしています。

clickイベントを伝播しませんが、を伝播するchangeので、代わりにそれをリッスンする必要があります。

$('#check-address').change(/* function */);

attr('checked')コードを改善するために、チェックをで置き換えたい場合がありprop('checked')ますが、コードは関係なく機能します。この理由は、prop();のjQueryドキュメントに概説されています。http://api.jquery.com/prop

于 2012-09-05T16:13:55.057 に答える
5

オプションのデモ

$('#check-address').attr('checked')

する必要があります

$('#check-address').is(':checked')


コメントで指摘されているように、この猫の皮を剥ぐ方法はたくさんあります。http://jsfiddle.net/sRt6G/1/ this.checkedが最も単純なようです。

于 2012-09-05T16:06:55.983 に答える
5

jquery1.7を使用しています。attrの代わりにpropを使用する必要があります

  $('#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
于 2012-09-05T16:07:47.737 に答える
1

チェックボックスのクリックイベントを実行しようとしている可能性があります。やってみました:

$('#check-address').on('change', function (e) {...

 if ($('#check-address').is(":checked")....
于 2012-09-05T16:10:17.773 に答える
1

これも役立つかもしれません。

$('input[name=city\\[' + this.value + '\\]]').val($('input[name=city\\[1\\]]').val());

デモ

上部のフォームに入力し、チェックボックスを使用してフィールドの値をコピーします。

動的に作成されたフィールドで機能します。フォームがハードコーディングされている場合はthis.value、フィールドのインデックスに置き換えます。

于 2015-10-22T21:35:14.890 に答える
0

次のコードを試してみてください:$( "input.billingAddress")。on( "change"、function(){

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

            });
于 2015-10-19T00:20:11.317 に答える