2016-08-02 57 views
0

我的代码有两个步骤。首先用户填写一些字段,然后数据由ajax提交给服务器。 Ajax返回一个HTML选择输入,用户必须选择一个值。这是第二步。在AJAX响应中无法获得HTML选择的值

问题是,当我尝试在javascript中获取select的值时,它显示为null。

我用来获取选择值的代码在正常情况下工作。但是,当通过ajax检索select时,会发生此问题。

代码来获得选择值

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

我编辑了代码。没有工作。我在post中写的代码是我经常用来在JS中获得选择值的代码。除了这个时间以外,它一直都是有效的。 –

+0

您可以使用该代码获取单个选项,但是,这不是访问表单提交的选择值的正确方法。您需要从选择本身而不是选项值中获取值。 – ManoDestra

+0

我不想在第二步中提交表单。我只想获得用户选择的值。 –