2012-04-04 14 views
1

動的フォームが送信されるときに、特定の入力フィールドを渡すことに現在問題があります。Javascript getElementByIDとフォームの処理

都道府県の特定のフィールドが選択されている場合(特定の州の学生からの情報のみを収集する必要があるため)、都市/学校のフィールドが有効になります。

HTMLコード:

<form name="email" method="post" action="...email.php"> 
. 
. 
. 
<div id="cityDiv" class="row"> 
<h5 id="c1" class="mandatory">City:</h5> 
<select id="c2" class="inputColumn" onchange="fillSchoolDropdown();" name="extra_city"> 
    --select options --- 
</div> 
<div id="schoolDiv" class="row"> 
<h5 id="sch1" class="mandatory">School:</h5> 
<input id="extra_school" class="inputColumn" type="text" name="extra_school"> 
</div> 

Javascriptを:私はどちらかヌルCitySelectまたは成功したが検証しますが、何とか形になってきた

if(verify(document.email)){ 
    . 
    . 
    . 
    var school = document.getElementById("extra_school").value; 
    var citySelect=document.getElementById("extra_city"); 
    var city=citySelect.options[citySelect.selectedIndex].text; 

... 2のための最終的な結果は、「まだです"フォームに入力されているものにもかかわらず。

私はここで間違っていますか?

+0

Countyはどこですか? HTMLとスクリプトスニペットを一致させ、関連するものをすべて含めることができますか? –

+0

が修正されました。ごめんなさい。 –

答えて

1
var citySelect=document.getElementById("extra_city"); 

は次のようになります。

var citySelect=document.getElementById("c2"); 

それはIDだからです。 name attrを選択しようとしています。

それとも、select要素のidを変更することができます:

<select id="extra_city" class="inputColumn" onchange="fillSchoolDropdown();" name="extra_city"> 
+0

この都市のドロップダウンが後でJavascript/AJAXによってロードされ、最初にロードされなかった場合でもこれは機能しますか? –

+0

最初はそれを隠すことはどうでしょうか? AJAXを使用してオプションをロードし、それを表示します。 – PeeHaa

+0

私が知る限り、それのためのdivがあり、fillCityDropdown()はCityドロップダウンをロードし、都市が選択されると、入力ボックスは基本的に別のdivを埋めます。 ページが読み込まれると、両方のdivが空になります。 これは以前と同じように動作していたが、以前は問題にはならなかったが、フォームの出力に何らかの変更を加える必要があり、現状と大きく異なるとは想像もできない。 –

0

はあなたの選択要素は、「C2」のIDを持っていますが、その名「extra_city」

var citySelect=document.getElementById("c2"); 
で呼び出すようにしようとしています