疾病只会引发第一个问题...为什么要问IE5,因为它是在Windows CE设备上运行的,所以我只能使用IE5。我制作的应用程序使用包含两个元素的网页。

我有两个文本字段和一个列表或<select>我想将一个文本框的值传输到列表中。我已经在IE 10和Chrome中运行了它,但是当我在设备上测试网页时,它没有将文本字段2的值发送到列表中。谁能帮我解决这个问题?

这是我的html代码:

 <tr>
                    <td>Locatie:</td>
                    <td><input type="text" id="one" onkeyup="CheckOne()" name="locatie" value="{locatie}" /></td>
                </tr>
                <tr>
                    <td>Bonregel:</td>
                    <td><input type="text" name="bonregel" id="two" onkeyup="CheckTwo(event)" /></td>
                </tr>
                <tr>
                    <td>Bonlijst:</td>
                    <td><select id="selectbox" multiple></select></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="submit" value="Verzenden" id="sub" onclick="CheckContent()" /></td>
                </tr>
                <tr>
                    <td></td>
                    <td><input type="button" value="Velden Legen" id="reset" onclick="ClearFields()" /></td>
                </tr>

然后我有我的JavaScript函数,用于将数据添加到列表中:
function AddToList(field) {
                // Create an Option Object
                var opt = document.createElement("option");
                document.getElementById("selectbox").options.add(opt);
                opt.text = document.getElementById("two").value;
                opt.value = document.getElementById("two").value;
            }

function CheckTwo(event) {
                var field = document.getElementById("two").value;
                var tKey = (event.which) ? event.which : event.keyCode;
                if (tKey == 51) {
                    AddToList(field);
                    GiveFocus("two");
                }
            }



// Gives focus to the specified component
            function GiveFocus(id) {
                document.getElementById(id).focus();
            }

            // Action that gets triggered by textfield 1
            function CheckOne() {
                if (event.keyCode == 13)
                    GiveFocus("two");
            }

编辑

我已经发现,出于某种原因,按钮具有优先权。我按Enter键即提交按钮。但是,当我在第二个文本字段中按Enter键时,它应该将数据发送到列表中。是否有解决方案,所以该按钮不具有优先权

这是我完整代码的小提琴:
https://jsfiddle.net/3jywt8v1/1/

最佳答案

在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年代得到了更好的支持。

08-19 15:45