Javascript createTextRange();问题

时间:2013-02-01 07:08:21

标签: javascript jquery

在排除警报后,下一行会给出错误。我可以使用javascript或jquery修复此问题吗?

    for(var nI = 0; nI < aOrderNumList.length; nI++) {
        if(!isEmpty(aOrderNumList[nI])) {
            alert("Invalid Order Number");
            var oTextRange = $("#OrderNumList").createTextRange();
            var lFound = oTextRange.indexOf(aOrderNumList[nI])!=-1;
            if(lFound) {
               oTextRange.select(); 
            }
            return false;
        }
    }

HTML代码

    <tr>
         <td>Order Number List:</td>
         <td><textarea tabindex="<%=nIndex+1%>" id="OrderNumList" name="OrderNumList" rows="2" cols="35" <%=VClass("OrderNumList","")%>></textarea></td>
    </tr>

非常感谢。

3 个答案:

答案 0 :(得分:2)

在代码中,您需要选择输入元素的文本内容(text,textarea类型输入字段)。

<强>的Java脚本

document.getElementById("selector").select()
//selector is element id

<强> JQuery的

setTimeout(function () { 
    $("#selector").select(); 
}, 1);
//selector is element id, also can you with class selector ie. $(".selector").select();

答案 1 :(得分:1)

我认为应该是:

var oTextRange = $("#OrderNumList")[0].createTextRange();

createTextRange是DOM对象的一种方法,而不是jquery对象。

<强>更新

body,button,textarea和input元素支持createTextRange方法,但是使用该方法会引发某些输入元素(复选框,图像,无线电)的异常。 isTextEdit属性可用于避免异常。

了解详情:http://help.dottoro.com/ljfahrpo.php

答案 2 :(得分:-1)

我回应其他人说的话,但要记住,如果这是你正在做的唯一的事情,那么你不需要事件jQuery。

var oTextRange = document.getElementById("OrderNumList").createTextRange();