繁体   English   中英

选项标签未出现在选择的Javascript中

[英]Option tag not appearing in select Javascript

我有一个javascript数组,我想遍历它以在<select>标记中创建选项。

var sBoxContent = "categorieBox_content";
var oBoxContent = document.getElementById(sBoxContent);

oBoxContent.innerHTML += "<select name=\"clientCategories\">";

for(var i=0;i<oClientCategories.length;i++) {
        var categorieId = oClientCategories[i].id;
        var categorieLabel = oClientCategories[i].label;

        oBoxContent.innerHTML += "<option value=\"" + categorieId + "\">" + categorieLabel + "</option>";
 }

oBoxContent.innerHTML += "</select>";

由于该选项正确显示,但它出现在<select>标记之外,因此该阵列正常工作。

HTML:

<td>
<select name="clientCategories"></select>
<option value="1">CategoryName</option>
</td>

由于innerHTML尝试始终创建有效的语法,

oBoxContent.innerHTML += "<select name=\"clientCategories\">"; 

实际上创建此DOM代码段:

<select name="clientCategories"></select>

因此,在将其分配给innerHTML之前,需要首先汇编HTML字符串:

var sBoxContent = "categorieBox_content";
var oBoxContent = document.getElementById(sBoxContent);
var myHTML = "";


myHTML += "<select name=\"clientCategories\">";

for(var i=0;i<oClientCategories.length;i++) {
        var categorieId = oClientCategories[i].id;
        var categorieLabel = oClientCategories[i].label;

        myHTML += "<option value=\"" + categorieId + "\">" + categorieLabel + "</option>";
 }

myHTML += "</select>";
oBoxContent.innerHTML += myHTML;

innerHTML很奇怪,不能像字符串一样工作。 您传递的HTML会被解析,因此您传递的初始<select>会自动关闭。

相反,将其构建为一个字符串,并在事实之后使用innerHTML

var oBoxContentHTML = "<select name='clientCategories'>";
// etc.
oBoxContent.innerHTML += oBoxContentHTML;

我会使用document.createElement()而不是仅仅弄乱HTML字符串。

var oClientCategories = [{id: 1, label:"one"},{id: 2, label: "two"},{id: 3, label: "three"}];
var selectBox = document.createElement("select");

for(var i=0;i<oClientCategories.length;i++){
    var elem = oClientCategories[i];
    var addedOption = document.createElement("option");
    addedOption.value = elem.id;
    addedOption.innerHTML = elem.label;
    selectBox.appendChild(addedOption);
}

var cont = document.getElementById("categorieBox_content");
cont.appendChild(selectBox);

可用的jsfiddle: http//jsfiddle.net/V3fjx/

JavaScript - 一种检查选项的方法 <select>选择了标签 我有一个 select 标签,我想检查是否选择了飞蛾。 &lt;select name="Birth_Month"&gt; &lt;option value="" SELECTED&gt;- Month -&lt;/option&gt; &lt;option value="January"&gt;一月&lt;/option&gt; &lt;option value="Fabruary"&gt;Fabruary&lt;/option&gt; &lt; option value="March"&gt;三月&lt;/option&gt; &lt;option value="April"&gt;四月&lt;/option&gt; &lt;option value="May"&gt;五月&lt;/option&gt; &lt;option value="June"&gt;六月&lt;/option &gt; &lt;option value="July"&gt;七月&lt;/option&gt; &lt;option value="August"&gt;八月&lt;/option&gt; &lt;option value="September"&gt;九月&lt;/option&gt; &lt;option value="October"&gt;十月&lt; /option&gt; &lt;option value="November"&gt;November&lt;/option&gt; &lt;option value="December"&gt;December&lt;/option&gt; &lt;/select&gt; 这样做: if (document.registration_form.Birth_Month.value === ' ') { alert('请填写 select 月份;') } 但是这个 JavaScript 对于某些 select-s 有效,而对于其中一些无效。 Obviously, when the "- Month -" is selected the it returnes "- Month -" insted of "" (empty string).我做错了什么?检查标签选择的最佳方法是什么?</select>

[英]JavaScript - a way check if an option of the <select> tag is selected

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何通过JavaScript选择选择标签的选项? javascript:使用 javascript 在 select 标记中设置选项的标题 JavaScript将选择菜单选项附加到div标签 Javascript-使用选择选项更改标记源 如何在javascript中更改select标签选项? 在javascript函数中选择选项标签调用 JavaScript - 一种检查选项的方法 <select>选择了标签 我有一个 select 标签,我想检查是否选择了飞蛾。 &lt;select name="Birth_Month"&gt; &lt;option value="" SELECTED&gt;- Month -&lt;/option&gt; &lt;option value="January"&gt;一月&lt;/option&gt; &lt;option value="Fabruary"&gt;Fabruary&lt;/option&gt; &lt; option value="March"&gt;三月&lt;/option&gt; &lt;option value="April"&gt;四月&lt;/option&gt; &lt;option value="May"&gt;五月&lt;/option&gt; &lt;option value="June"&gt;六月&lt;/option &gt; &lt;option value="July"&gt;七月&lt;/option&gt; &lt;option value="August"&gt;八月&lt;/option&gt; &lt;option value="September"&gt;九月&lt;/option&gt; &lt;option value="October"&gt;十月&lt; /option&gt; &lt;option value="November"&gt;November&lt;/option&gt; &lt;option value="December"&gt;December&lt;/option&gt; &lt;/select&gt; 这样做: if (document.registration_form.Birth_Month.value === ' ') { alert('请填写 select 月份;') } 但是这个 JavaScript 对于某些 select-s 有效,而对于其中一些无效。 Obviously, when the "- Month -" is selected the it returnes "- Month -" insted of "" (empty string).我做错了什么?检查标签选择的最佳方法是什么?</select> 从中选择多个选项后触发javascript函数<select>标签 切换选择标签中显示的值 如何使用javascript或CSS更改选择标签中的选项宽度?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM