0

私はグーグルでいろいろ調べましたが、比較的単純なことをしようとしているので、何を検索すればよいかわかりません。オンラインで回答が見つからない場合にのみ、ここで質問するようにしています。

私はプレーンなJavaScriptで答えを探しています。jqueryは使いたくない どうもありがとう!

チェックアウトのためにオンラインでフォームに記入するときに、「請求先情報が配送先情報と同じ場合は、このボックスをチェックしてください」というオプションをクリックすると、ボックスをクリックすると、請求先情報が自動的に表示されます。配送情報が入力されます。

すべての入力タイプのテキストを正しく機能させることはできますが、billing_state のドロップダウン選択ボックスを shipping_state で既に選択されているものと同じにすることができないようです。

私はすべての状態を使用しています。以下は、例を単純化するためのものです。

のチェックボックスがありonchange="setBillingAddress(this)"、if ステートメントを使用してボックスがチェックされているかどうかを確認しています。したがって、すべてが完全に機能します。

shipping_state で設定されたbilling_state ドロップダウン値を、billing_state ドロップダウン リストで強調表示することができます (ドロップダウン リストをクリックすると、値が shipping_state ドロップダウン リストにあった値に設定されていることがわかります)。 . 「状態を選択」をクリックしなくても、状態を事前に選択して表示できるようにしたい。

setBillingAddress()私の質問は、値が既に設定されていても、「状態の選択」と表示される別のドロップダウン ボックスを表示する必要がないように、billing_state を事前に選択してユーザーに表示するには、関数内に何を配置すればよいかということです。

2 つのドロップダウン メニューがあります。1 つは shipping_state という ID を持つ shipping_state という名前で、もう 1 つはbilling_state という ID を持つbilling_state という名前です

4

2 に答える 2

2

一方の値を他方の値と等しく設定するだけですselect。古い質問のいくつかを調べて、答えを受け入れたいと思うかもしれません。

http://jsfiddle.net/pZZQt/

function setBillingAddress(elem) {
    document.getElementById('billing_state').value = elem.value;
}​
于 2012-04-06T03:33:23.553 に答える
1

請求先住所に「変更」イベント ハンドラーを追加し、ハンドラーで、選択された請求先住所のインデックスと一致するように、配送先住所の選択されたインデックスを設定します (選択リストのすべてが一致する必要があります)。ここで実際にそれを見てください:

http://jsfiddle.net/4AcjD/10/

HTMLは次のとおりです。

<div id="billing">
<p>Billing:</p>
<select name="billingState" id="billingState">
    <option>Alabama</option>             
    <option>Alaska</option>                 
    <option>Arizona</option>
    <!-- etc -->
</select>
</div>

<div id="shipping">
<p>Shipping:</p>
<select name="shippingState" id="shippingState">
    <option>Alabama</option>             
    <option>Alaska</option>                 
    <option>Arizona</option>
    <!-- etc -->
</select>
</div>

そしてJavascript:

var billingState = document.getElementById( "billingState" );
var shippingState = document.getElementById( "shippingState" );
billingState.addEventListener( "change", 
    function() { 
        shippingState.selectedIndex = billingState.selectedIndex;
    } );
于 2012-04-06T03:41:29.137 に答える