我有一个点击选择的输入:
<input onClick="this.select();" type="text" name="country" value="Norwayasdasdasddddddddddddddddddddddddddddddddddddddd" readonly><br>
问题是,在Firefox中,我第一次可以通过按住鼠标左键向右滚动。然后,我不能第二次这样做。当我想滚动以查看第二次的完整值时,整个文本被选中,我不能再滚动了。我在Chrome中没有遇到此问题。
请帮忙!
谢谢, 昆西
答案 0 :(得分:1)
您可以尝试使用此解决方法解决问题:
<input onmouseout="var tmp=this.value;this.value='';this.value=tmp" onClick="this.select();" type="text" name="country" value="Norwayasdasdasddddddddddddddddddddddddddddddddddddddd" readonly><br>
因此,当鼠标从输入区域退出时,文本被重写(此黑客从文本中删除选择)。
如果您希望在鼠标退出输入区域时保持选中文本,则可以使用onmouseenter
而不是onmouseout
答案 1 :(得分:1)
一种解决方案是通过记住上次单击时是否选择了文本来使点击成为切换。所以添加一个变量
var selection = false;
并将onclick处理程序更改为
if (selection = !selection) this.select();
然后第一个版本将选择所有文本,下一个点击将取消选择它等。请参阅JSFiddle。
编辑:另一种方法是取消选择mousedown上的文本。那将更接近你的需要。
<input onMouseDown="this.setSelectionRange(0,0)" onClick="this.select();"
type="text" name="country"
value="Norwayasdasdasddddddddddddddddddddddddddddddddddddddd" readonly>
请参阅other JSFiddle。