Chrome和Safari在鼠标上取消选择文本
Chrome and Safari deselecting text on mouseup
我遇到的问题是Safari和Chrome。似乎有一个错误,当您单击文本或输入框时,会导致鼠标up事件触发两次。我希望当输入框获得焦点时,输入框中的文本完全被选中(无论它是被选中、单击还是通过代码获得焦点)。如果你选择框或通过代码给它的焦点,它的工作完美。但是,如果单击该框,文本将被选中,直到松开鼠标按钮。然后文本立即被取消选中。下面是我使用的代码:
<h1>Slope Intercept Form</h1>
<form>
<p>Enter the beginning X and Y coordinates for your line.</p>
<label for="x1">X1: </label>
<input id="x1" type="text" name="x1" maxlength="6" size="5"
onfocus="this.setSelectionRange(0,this.value.length)"
onblur="message(this.name, this.value)">
<label for="y1">Y1: </label>
<input id="y1" type="text" name="y1" maxlength="6" size="5"
onfocus="this.setSelectionRange(0,this.value.length)"
onblur="message(this.name, this.value)">
</form>
是否有任何方法围绕这个Chrome和Safari?
应该这样做:
<input type="text" id="myText" value="Mickey" onclick="myFunction()">
<script>
function myFunction() {
document.getElementById("myText").select();
}
</script>
下面是使用您的代码的工作演示。注意,这里需要2个不同的函数和两个不同的getElementByID参数:http://codepen.io/anon/pen/pJXLro
HTML:<h1>Slope Intercept Form</h1>
<form>
<p>Enter the beginning X and Y coordinates for your line.</p>
<label for="x1">X1: </label>
<input id="x1" type="text" name="x1" maxlength="6" size="5" onclick="myFunction()">
<label for="y1">Y1: </label>
<input id="y1" type="text" name="y1" maxlength="6" size="5" onclick="myFunction2()">
</form>
Javascript: <script>
function myFunction() {
document.getElementById("x1").select();
}
function myFunction2() {
document.getElementById("y1").select();
}
</script>
正如你可能已经知道的,这是一个好主意,尽量保持你的HTML和JS彼此分开(但这并没有导致你在你的例子中的问题)。
我找到了一个解决方案。我为输入框创建了事件侦听器:
document.getElementById("x1").addEventListener("click", function() {document.getElementById("x1").select();});
document.getElementById("y1").addEventListener("click", function() {document.getElementById("y1").select();});
现在,当点击输入框时,它被自动选中。当输入框被选中时,它也会被自动选中。现在我不需要使用onFocus事件来选择输入框文本。onFocus事件和onClick事件在Safari和Chrome中相互冲突,但在Firefox, IE或Opera中没有冲突。
相关文章:
- jquery点击函数select&取消选择
- 使用Jquery选择或取消选择ListView中的所有复选框
- 如何在javascript中取消选择文本框
- 如何取消选择所选选项并将JqueryMobile中选择的值刷新为1st
- 取消选择特定标记中的文本
- 取消选择滚动启动时的所有列表视图项目
- 如何通过jQuery选中所有复选框并在单击一个复选框时取消选择
- jQuery UI 选项卡取消选择事件或在选择时保存上一个选项卡
- Jquery 无法在单击时选择和取消选择 td
- 通过在d3中单击来选择/取消选择
- 复选框选择/取消选择触发器第一次工作,但在随后的尝试中失败
- 根据动态值选择和取消选择复选框
- 取消选择单选按钮
- 收听单选按钮取消选择事件而不知道按钮's上下文(骨干视图)
- 下拉列表单选取消选择
- 如何在jqueryDataTables中以编程方式取消选择由id标识的行
- 如何通过javascript中的按钮点击来选择和取消选择多个复选框
- 取消选择Fabric.js中的选定对象
- 选择/取消选择复选框,该复选框未按预期使用.coneast('table').find('tbo
- 如何防止在html中模糊(焦点丢失)时取消选择所选文本