我试图通过以下方式从输入中删除文本,并且它无法在Mozilla中运行,任何人都可以帮忙吗? 在IE中工作正常。
var start = txt.selectionStart;
var end = txt.selectionEnd;
var selectedStr = txt.value.toString().substring(start, end);
txt.value = txt.value.toString().replace(selectedStr, "");
答案 0 :(得分:1)
Mozilla(和其他浏览器)使用document.selection
,window.getSelection()
有不同的实现,因此您需要根据这些方法/属性和旧版支持表调整代码。您可以使用许多库来为您规范化。
以下是一个适用于webkit的代码示例:
var selectedStr = '';
if (window.getSelection) {
var selectedText = window.getSelection().toString()
}
答案 1 :(得分:1)
看起来您正在尝试删除文本输入中的选定文本。你需要两种不同的方法:一种用于IE< 9和一个支持selectionStart
和selectionEnd
属性的其他浏览器。方法如下:
演示:http://jsfiddle.net/hwG7f/1/
代码:
function deleteSelected(input) {
input.focus();
if (typeof input.selectionStart == "number") {
var start = input.selectionStart,
end = input.selectionEnd,
val = input.value;
if (start != end) {
input.value = val.slice(0, start) + val.slice(end);
input.setSelectionRange(start, start);
}
} else if (typeof document.selection != "undefined") {
document.selection.createRange().text = "";
}
}
答案 2 :(得分:0)
更换值不是解决此问题的正确方法。尝试在选择之前和之后获取字符串块:
var start = txt.selectionStart;
var end = txt.selectionEnd;
txt.value = txt.value.substring(0,start) + txt.value.substring(end);
答案 3 :(得分:0)
SelectionStart仅适用于IE9 +。
抱歉,为什么不直接将其设置为“”。
<input type="text" id="txt" />
<input type="button" value="Clear" id="clear" />
function clear() {
var txt = document.getElementById('txt');
txt.value = "";
}
$('#clear').click(function(){clear()});
答案 4 :(得分:-1)
var str = "yourString"
str = str.substring(1,str.length-1)