2012-03-14 17 views
2

ドロップダウンリストと、ドロップダウンリストから特定の値を選択したときに他のフィールドを無効にするjavascript関数があります。ここでドロップダウンの値を正しく取得できません

Javascriptのコード

function maritalStatusChange() 
    { 
     var dropdown = document.getElementById("maritalstatus").value; 

     if(dropdown == 'Single') 
     { 
      document.getElementById("spousefld").disabled = true; 
      document.getElementById("spouse_occupation").disabled = true; 
      document.getElementById("address3").disabled = true; 
      document.getElementById("children_no").disabled = true; 
      document.getElementById("spousefld").value = ""; 
      document.getElementById("spouse_occupation").value = ""; 
      document.getElementById("address3").value = ""; 
      document.getElementById("children_no").value= "None"; 
       } 
     if(dropdown == 'Married') 
     { 
      document.getElementById("spousefld").disabled = false; 
      document.getElementById("spouse_occupation").disabled= false; 
      document.getElementById("address3").disabled = false; 
      document.getElementById("children_no").disabled = false; 
      document.getElementById("maritalstatus").value= 'Married'; 
       } 
     if(dropdown == 'Separated') 
     { 
      document.getElementById("spousefld").disabled = false; 
      document.getElementById("spouse_occupation").disabled= false; 
      document.getElementById("address3").disabled = false; 
      document.getElementById("children_no").disabled = false; 
     } 
     if(dropdown == 'Widowed') 
     { 
      document.getElementById("spousefld").disabled = false; 
      document.getElementById("spouse_occupation").disabled= false; 
      document.getElementById("address3").disabled = false; 
      document.getElementById("children_no").disabled = false; 
     } 
    } 

は、ドロップダウンリスト、どこ私はjavascript関数を呼び出すのHTMLコードです。

<select name="maritalstatus" id="maritalstatus" onchange="maritalStatusChange();"> 
           <option>---------------</option> 
           <option value='Single'>Single</option> 
           <option value='Married'>Married</option> 
           <option value='Separated'>Separated</option> 
           <option value='Widowed'>Widowed</option> 
           </select><font color="red">*</font> 

は今、働く唯一のことは、私はしかし、「シングル」オプションを選択すると、残りのオプションのための適切な選択された値を取得していないようです。私が間違ったことを誰かに教えてもらえますか?

ありがとうございます!

+1

試行 'ヴァル()'の代わりに3行で[値] 'の - ' VARドロップダウン=のdocument.getElementById( "MaritalStatusの")のval(); ' –

+2

valが()jqueryの方法です。彼がjqueryをインストールしていないとうまく動作しません – Th0rndike

+0

これはjQuery関数です。ネイティブJavascriptではありません! –

答えて

0

これを試してみてください。

var dropdown = document.getElementById("maritalstatus").options[document.getElementById("maritalstatus").selectedIndex].value;

0

あなたは "selectedIndexの" 試してみてください:

document.getElementById("maritalstatus").selectedIndex; 
0

上記のコードは正常に動作しますが。

実際のエラーとは何ですか?おそらくコードの他の部分ですか?

+0

それは本当にエラーを表示していない、それは単にdoesn '選択した値を適切にdbに追加します。選択された値が "Single"である場合にのみ動作しますが、他の値では失敗します。 – Programmer

0

はあなたがHTMLに単一のクォータを使用しているコード

var eve = document.getElementById("maritalstatus"); 
var data = eve.options[eve.selectedIndex].value; 
0

下に試してみてください。ダブルクォータに切り替えます。 optionsのすべての値は、これらの単一クォータで割り当てられます。これはあなたが実際に比較しているものです:("'Single'"=="Single") => false

EDITこのコードは、あなたのdbで選択を追加Single以外のif -blocksをチェックすることになっている場合

Singleの場合は、いくつかの値を設定しますが、他のブロックは何らかの不快感を与えています。

+0

私はそれを二重引用符で囲みましたが、同じ結果が出ました。 – Programmer

+0

@JosephTadioanあなたのコメントの1つでは:これは「選択した値をデータベースに正しく追加していない」投稿されたコードがOKであると思われます。 'db'に値を追加するコードの部分を投稿してください。または、このコードで行う必要がありますが、あなたはそれを忘れてしまっていますか? – Teemu

+0

選択したオプションが「シングル」の場合は、正しくデータベースに追加できましたが、それはちょっと変です。 – Programmer

0

は、あなただけのIDによって要素から値を取得し、その値に警告する必要があります。

関数を作成し、変更時に呼び出す。動的に生成される値の多くで動作し、ドロップダウンのエントリの制限はありません。

<select name="maritalstatus" id="maritalstatus" onchange="maritalStatusChange();"> 

function maritalStatusChange() 
{ 
    var getValue = document.getElementById("maritalstatus").value; 
    alert(getValue); 
} 
関連する問題