我有几个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;我的意思是这样的:
这里是fiddle
不幸的是,我不仅要支持现代浏览器,还要支持IE7和IE8。
答案 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中,它似乎比较棘手。
我有一个你可以使用的解决方案。如果有多个具有相同值的字段
,它将会中断$(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)
});