2016-08-02 6 views
0

私のコードには2つのステップがあります。最初のステップでは、ユーザーがいくつかのフィールドを埋めると、データがajaxによってサーバーに送信されます。 Ajaxは、ユーザーが値を選択する必要があるHTML select入力を返します。これが第2のステップです。AJAX応答でHTML選択の値を取得できません

問題は、javascriptでselectの値を取得しようとすると、nullが表示されることです。

私が選択値を取得するために使用するコードは、通常の状況で機能します。しかし、selectがajaxによって取得されると、この問題が発生します。

コードは、選択値を取得する

var e = document.getElementById("ordernum"); 
var num = e.options[e.selectedIndex].value; 
+2

ajaxでフルコードを投稿すると、DOMに追加する方法 –

+0

'問題は、javascriptでselectの値を取得しようとすると、nullが表示されます。あなたが実際にコンパイルされる前にその値にアクセスしようとしていると信じてください(asyncronou s)。完全なコードを投稿してください – briosheje

+0

男はajaxに問題はありません。それはあるべきであるように、selectを含むいくつかのHTMLコードを返します。返されたHTMLは、innerHTML関数を使っていくつかのdivに入れられます(ここではselectが表示されます)。全体のコードは複雑ですが、それが助けになると思うなら、私はそれを投稿します。 –

答えて

0

ここで動的にselect要素を生成し、event.target.valueを経由してそののonchangeイベントで、それから戻って値を取得する方法を示す例のHTMLファイルです:

は、
<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <script> 
      const GameDifficulty = { 
       EASY:1, 
       MEDIUM:2, 
       HARD:3, 
       INSANE:4 
      }; 

      function init(event) { 
       console.log(event); 
       var body = document.getElementById('body'); 
       var select = document.createElement('select'); 
       select.id = 'selDifficulty'; 
       for (var diff in GameDifficulty) { 
        var option = document.createElement('option'); 
        option.value = GameDifficulty[diff]; 
        option.innerHTML = diff; 
        select.appendChild(option); 
       } 

       select.onchange = test; 

       body.appendChild(select); 
       console.log(body); 
      } 

      function test(event) { 
       console.log(event.target.value); 
      } 

      window.onload = init; 
     </script> 
    </head> 
    <body id="body"> 
    </body> 
</html> 
+0

コードを編集しました。うまくいきませんでした。私がポストで書いたコードは、JSで選択オプションの値を得るために常に使用するコードです。そして、この時間以外は常時動作します。 –

+0

このコードを使用して個々のオプションを得ることはできますが、フォーム提出の選択肢の値にアクセスするのは正しい方法ではありません。オプションの値ではなく、選択自体から値を取得する必要があります。 – ManoDestra

+0

私は2番目のステップでフォームを提出したくありません。私はちょうどユーザーが選択されている値を取得したい。 –

関連する問題