将项目添加到IE5中的<select>

时间:2015-06-15 06:58:04

标签: javascript html

生病只是问题第一个问题...为什么IE5你想知道,因为它在我工作的Windows CE设备上所以我限制使用IE5。我所做的应用程序使用了包含几个元素的网页。 我有两个文本字段和一个列表或&lt; select&gt; 我想将一个文本框的值传输到列表中。我已经在IE 10和Chrome中使用了它,但是当我在设备上测试网页时,它没有将textfield 2的值发送到列表中。任何人都可以帮我解决这个问题吗? 这是我的HTML代码:  &LT; TR&GT;                     &LT; TD&GT; Locatie:其中; / TD&GT;                     &lt; td&gt;&lt; input type =&#34; text&#34; ID =&#34;一个&#34;的onkeyup =&#34; CheckOne()&#34;命名=&#34; locatie&#34;值=&#34; {locatie}&#34; /&GT;&LT; / TD&GT;                 &LT; / TR&GT;                 &LT; TR&GT;                     &LT; TD&GT; Bonregel:其中; / TD&GT;                     &lt; td&gt;&lt; input type =&#34; text&#34;名称=&#34; bonregel&#34; ID =#&34; 2&#34;的onkeyup =&#34; CheckTwo(事件)&#34; /&GT;&LT; / TD&GT;                 &LT; / TR&GT;                 &LT; TR&GT;                     &LT; TD&GT; Bonlijst:其中; / TD&GT;                     &lt; td&gt;&lt; select id =&#34; selectbox&#34;多个&GT;&LT; /选择&GT;&LT; / TD&GT;                 &LT; / TR&GT;                 &LT; TR&GT;                     &LT; TD&GT;&LT; / TD&GT;                     &lt; td&gt;&lt;输入类型=&#34;提交&#34;值=&#34; Verzenden&#34; ID =&#34;子&#34;的onclick =&#34; CheckContent()&#34; /&GT;&LT; / TD&GT;                 &LT; / TR&GT;                 &LT; TR&GT;                     &LT; TD&GT;&LT; / TD&GT;                     &lt; td&gt;&lt; input type =&#34; button&#34;价值=&#34; Velden Legen&#34; ID =&#34;重置&#34;的onclick =&#34; ClearFields()&#34; /&GT;&LT; / TD&GT;                 &LT; / TR&GT; 然后我有我的javascript函数用于将数据添加到列表: function AddToList(field){                 //创建一个选项对象                 var opt = document.createElement(&#34; option&#34;);                 的document.getElementById(&#34;选择框&#34)。options.add(优化);                 opt.text = document.getElementById(&#34; two&#34;)。value;                 opt.value = document.getElementById(&#34; two&#34;)。value;             } function CheckTwo(event){                 var field = document.getElementById(&#34; two&#34;)。value;                 var tKey =(event.which)? event.which:event.keyCode;                 if(tKey == 51){                     AddToList(场);                     GiveFocus(&#34; 2&#34);                 }             } //将焦点放在指定的组件上             function GiveFocus(id){                 的document.getElementById(ID).focus();             }             //由textfield 1触发的动作             function CheckOne(){                 if(event.keyCode == 13)                     GiveFocus(&#34; 2&#34);             } 编辑 我已经发现按钮优先于某种原因。按下输入后,按钮会立即提交。但是当我按下第二个文本字段中的enter时,它应该将数据发送到列表。有没有解决方案,所以按钮不优先 下面是我的完整代码的小提琴: https://jsfiddle.net/3jywt8v1/1/

3 个答案:

答案 0 :(得分:3)

在IE5上,您可能需要使用Option构造函数而不是createElement

function AddToList(field) {
    // Create an Option Object
    var val = document.getElementById("two").value;
    var opt = new Option(val, val);
    document.getElementById("selectbox").options.add(opt);
}

它也适用于现代浏览器。

我认为add,您使用的是与列表中添加选项最兼容的方式,但如果不是这样,您可能需要通过分配添加代替:

var options = document.getElementById("selectbox").options;
options[options.length] = opt;

......但是,我认为add在90年代得到了更好的支持。

答案 1 :(得分:0)

以下是我的示例代码:

<form name=vv>
<select name="qq"></select>
<input type=button value="Go" onclick="add()">
</form>

function add() 
{
 var qq = document.vv.qq;
 var option = new Option("text", "0");
 qq.options[qq.options.length] = option;
}

答案 2 :(得分:-1)

好吧,我总是发现自己的问题有点奇怪,但我找到了解决问题的方法,我想与帮助我的人分享。

我已经发现,在IE5中,使用javascript添加项目时<select>并不是很好用。这就是我使用<textarea>存储所有数据的原因。我已经<textarea>成为readonly字段。

这是我用来使其工作的Javascript,并且使其工作我的意思是将textbox 2的值添加到textarea。

function AddToList() {
                // Create an Option Object
                var box = document.getElementById("bonregels");
                var val = document.getElementById("two").value.toString();
                if (box.value != "")
                    box.value += "\n";
                box.value = box.value + val;                    
            }

感谢所有帮助过的人,你把我推向了正确的方向。