我有一个文本框。当我写第一个 text 时,java script 函数会触发来检查它是否是一个数字。
对于 IE ,以下代码返回 -1 值,但其他浏览器不会提醒任何值。请帮我
var selected = document.selection.createRange();
var decInSel = selected.text.indexOf('.');
hasNegInSel = selected.text.indexOf('-') != -1;
alert(decInSel);
我有一个文本框。当我写第一个 text 时,java script 函数会触发来检查它是否是一个数字。
对于 IE ,以下代码返回 -1 值,但其他浏览器不会提醒任何值。请帮我
var selected = document.selection.createRange();
var decInSel = selected.text.indexOf('.');
hasNegInSel = selected.text.indexOf('-') != -1;
alert(decInSel);
document.selection.createRange()
仅是 IE < 9 ...您可以使用以下跨浏览器支持功能
function getSelectedText() {
if (window.getSelection) { // all browsers, except IE before version 9
var selectionRange = window.getSelection ();
return selectionRange.toString();
} else {
if (document.selection.type == 'None') {
return "";
} else {
var textRange = document.selection.createRange();
return textRange.text;
}
}
}
所以你的完整代码看起来像这样:
var selected = getSelectedText()
var decInSel = selected.indexOf('.');
hasNegInSel = selected.indexOf('-') != -1;
alert(decInSel);
其他浏览器使用文本框selectionStart
和selectionEnd
属性。您可以使用以下方法在这些浏览器的文本框中获取选定的文本:
var input = document.getElementById("textBox");
var selectedText = input.value.slice(input.selectionStart, input.selectionEnd);