jquery获取输入所选文本的id

时间:2014-09-24 09:00:34

标签: javascript jquery html

我有几个input字段(有时会被禁用)。当用户点击按钮时,如何获取其中包含选择id字段的input

Text:<input type="text" id="myID" disabled="disabled" value="Hello World"/>
<input type="text" id="myID2" value="Hello again"/>
<input type="button" id="myButton" value="Get Selected Id" name="Get Selected Id"/>

$("#myButton").click(function(){
    alert(/*...how do I get 'myID' or 'myID2' here, depending on which has a selection?...*/);
});

选择&#34;选择&#34;我的意思是这样的:

enter image description here

这里是fiddle

不幸的是,我不仅要支持现代浏览器,还要支持IE7和IE8。

1 个答案:

答案 0 :(得分:1)

不确定你想要达到的目的。

在IE中,您可以成功执行此操作:

var id = document.selection.createRange().parentElement().id

像这样:

$("#myButton").on("click", function () {
  var node = document.selection.createRange().parentElement();
  if (node && node.id) {
     window.console && console.log("node_ " + node.id)
  }
});
在Chrome中,它似乎比较棘手。

我有一个你可以使用的解决方案。如果有多个具有相同值的字段

,它将会中断

FIDDLE

$(document).on("mouseup", "input", function () {
    var node = document.selection ? document.selection.createRange().parentElement() : window.getSelection().focusNode.parentNode;
    if (!node.id) {
        var sel = window.getSelection().toString();
        $("input").each(function () {
            if (this.value.indexOf(sel) != -1) {
                node = this;
                return false;
            }
        });
    }
    window.console && console.log("node:" + node.id)
});