2012-04-06 4 views
0

私はグーグル上を見渡しました。私は探しているものが分からないと思います比較的簡単なことをしてください。私はオンラインで回答を見つけることができない場合にのみ、ここで質問をします。billing_stateドロップダウンリストがshipping_stateドロップダウンリストと同じになるように自動的に事前選択する方法

私はプレーンジャバスクリプトで答えを探しています。私はjqueryを使いたくありません。どうもありがとうございます!

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

私はすべての入力タイプテキストが正しく動作するために取得することができるが、私はbilling_stateのための選択ドロップダウンボックスが既にshipping_stateのために選択されているものと同じであることを得るように見えることはできません。

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

私はonchange="setBillingAddress(this)"というチェックボックスを持っており、if文を使ってボックスがチェックされているかどうかを確認しています。だからすべてが完璧に動作します。

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

私の質問は、setBillingAddress()関数の中に何を入れて、billing_stateを事前に選択してユーザーに表示させるかを示しています。そのため、値を指定しても[select state]という別のドロップダウンボックスは表示されません。すでに設定されています。

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

答えて

1

にすべてのものを想定した(請求先住所の「変更」イベントハンドラを追加し、ハンドラでは、請求先住所の選択されたインデックスに一致するように配送先住所の選択されたインデックスを設定します選択リストが一致していなければなりません)。ここでアクションでそれを参照してください。

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

ここではHTMLです:、私はここにマークを逃したかもしれない

var billingState = document.getElementById("billingState"); 
var shippingState = document.getElementById("shippingState"); 
billingState.addEventListener("change", 
    function() { 
     shippingState.selectedIndex = billingState.selectedIndex; 
    }); 
+0

これはjavascriptが不足しているようです。たぶん、あなたのフィドルを再保存するのを忘れましたか?答えにコードを投稿してください。フィドルが死ぬと、他の人があなたの知識から恩恵を受けるようになります。 – mrtsherman

+0

あなたが正しいです、私は再保存を怠った。それは修正されました。そして今、私は質問を更新するつもりです。ヘッドアップありがとう、@mrtsherman –

+0

ねえ、私はあなたが残したリンクに行ったが、javascriptの部分が何らかの理由で欠落していますか?おそらく、他の人がページに行ってそれを削除してから、「更新」をクリックして、自分でテストしていたときに戻すのを忘れてしまったのでしょうか? – darga33

2

selectの値をもう一方の値に設定するだけで済みます。古い質問のいくつかを調べて回答を受け入れることができます。

http://jsfiddle.net/pZZQt/

function setBillingAddress(elem) { 
    document.getElementById('billing_state').value = elem.value; 
}​ 
+0

ちょうどあなたの質問を再読した

<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 。それは実際には長く、少し難しいです。あなたは 'onchange'イベントを使わずに値を同じにする方法を尋ねていますか?だから、チェックボックスをチェックすると、もう一方のチェックボックスがオンになります。 – mrtsherman

+0

こんにちは、ありがとう!私はあなたの例をコピーして貼り付け、それは完全に機能しました。しかし、私の例では、「出荷と同じ」というチェックボックスをクリックしてチェックボックスをクリックすると、出荷状態と同じになるように請求状態が設定されます。また、両方の選択ドロップダウンメニューには、請求状態が出荷状態と異なる場合に2つの異なる名前が必要です。だから、私が必要としているように正確には動作しません。答えを受け入れることについて私に知らせてくれてありがとう。私は今日までそれをどうやって行うのか分かりませんでした。私はあなたがチェックボックスをクリックしなければならないことに気付きました。 – darga33

+0

基本的に同じ答えです。同じことをするチェックボックスにチェンジハンドラを追加するだけです。 http://jsfiddle.net/pZZQt/1/ – mrtsherman

関連する問題