获取由jquery加载的<select>的选定值

时间:2015-08-04 07:43:56

标签: jquery html ajax select get

我有一个html标签和ajax和jquery我填充更多 &LT;选项&GT;&LT; /选项&GT; 我的问题是: 当我试图与你相处时 jquery $(&#34; #select&#34;)。val(); 它总是返回&#34; undefined&#34;。 我也尝试使用.text();和它一样。 这是我的jquery / javascript代码来填充选项选择下拉列表: function CaricaDaTipo(){          var dati = {nome:&#34; recuperaCategorieAttributi&#34;,candidateFamiglie:$(&#34; #selectTipo&#34;)。val()};             $就({                输入:&#34; GET&#34;,                url:&#34; elaboraPhp.php&#34;,                数据:dati,                错误:function(data){alert(data);},                成功:功能(结果){                     var arrayRitorno = eval(result);                     $(&#34;#selectCategorie&#34)空();                     for(arrayRitorno中的var index)                     {                         if(index == 0){                             $(&#34;#selectCategorie&#34)。VAL(arrayRitorno [指数]);                         }                         $(&#34; #selectCategorie&#34;)。追加($(&#34;&lt;选项值=&#39;&#34; + arrayRitorno [index] +&#34;&#39;&gt; &#34 + arrayRitorno [指数] +&#34;&LT; /选项&GT;&#34));                     }                     RiempiDivConElementi();                }             }); 在我的页面中我有2个选择: 1_使用html创建标准项目。当我更改此功能时,已调用函数以使用正确的选项填充第二个选项。 2_当我在第二个选择中选择项目时,我会调用一个填充div的函数。 所有工作都正常,不包括第二选择的获取值。 有人解决这个问题吗? 编辑: 这是我在html中的选择: &lt; label for =&#34; selectCategorie&#34;&gt; Categoria:&lt; / label&gt;     &lt; select id =&#34; selectCategorie&#34;名称=&#34; selectCategorie&#34;&GT;         &lt;! - CARICATO AUTOMATICAMENTE NON APPENA SI SCEGLIE IL TIPO - &gt;     &LT; /选择&GT; 解: 我找到了解决方案: 在我看来,问题是当我试图通过jquery的#selector获取值时,但是在DOM中它不存在,因为我在客户端生成它而没有更改DOM。 我改变这样的功能: function CaricaDaTipo(){      var dati = {nome:&#34; recuperaCategorieAttributi&#34;,candidateFamiglie:$(&#34; #selectTipo&#34;)。val()};         $就({            输入:&#34; GET&#34;,            url:&#34; elaboraPhp.php&#34;,            数据:dati,            错误:function(data){alert(data);},            成功:功能(结果){                 var arrayRitorno = eval(result);                 var catSel =&#34;&#34 ;;                 $(&#34;#selectCategorie&#34)空();                 for(arrayRitorno中的var index)                 {                     if(index == 0){                         $(&#34;#selectCategorie&#34)。VAL(arrayRitorno [指数]);                         catSel = arrayRitorno [index];                     }                     $(&#34; #selectCategorie&#34;)。追加($(&#34;&lt;选项值=&#39;&#34; + arrayRitorno [index] +&#34;&#39;&gt; &#34 + arrayRitorno [指数] +&#34;&LT; /选项&GT;&#34));                 }                 RiempiDivConElementi(catSel);            }         }); } 函数RiempiDivConElementi(cat){     var dati = {nome:&#34; generaTabellaPermessiUtenti&#34;,scheda:$(&#34; #selectTipo&#34;)。val(),categoria:cat,id:&lt;?php echo($ datiUtenteCaricati [& #39; ID&#39;]);?&GT; };     $就({            输入:&#34; GET&#34;,            url:&#34; elaboraPhp.php&#34;,            数据:dati,            错误:function(data){alert(data);},            成功:功能(结果){                 $(&#34;#permessiAttributiDiv&#34)的HTML。(&#34;&#34);                 $(&#34;#permessiAttributiDiv&#34)。HTML(结果);            }         }); } $(document).ready(function(){    $(&#34; #selectTipo&#34;)。on(&#34; change&#34;,function(){         CaricaDaTipo();    });    $(&#34;#selectCategorie&#34;)。on(&#34; change&#34;,function(){         RiempiDivConElementi($(本).VAL());    });    $(&#34; #permessiDiv输入&#34;)。on(&#34;更改&#34;,&#34;输入&#34;,function(){     )};    CaricaDaTipo(); }); 现在我用javascript传递变量而不用jquery找到它。 现在一切都好。 谢谢

2 个答案:

答案 0 :(得分:0)

你有一个错误的选择器来定位select element.element有id Country.Text = Convert.ToString(Request.Form["country"]); 而不是selectCategorieselect是下拉列表的标记名。因此你应该使用:

select

答案 1 :(得分:0)

如果你已经使用id =&#39;选择&#39;那么你的代码是完美的。其他明智的写

$("select").val();

您编辑的问题答案 -

$("#selectCategorie").val();