2015-04-03 50 views
1

我有上点击选择一个输入:火狐输入不能滚动

<input onClick="this.select();" type="text" name="country" value="Norwayasdasdasddddddddddddddddddddddddddddddddddddddd" readonly><br> 

的问题是,在Firefox中,我第一次可以通过按住滚动到右侧鼠标左键。然后,我再也不能这样做了。当我想要滚动查看第二次完整值时,整个文本被选中,我不能再滚动了。我在Chrome中没有这个问题。

请帮忙!

感谢, 昆西

+0

你不想删除'onclick =“this.select()”'?你可以用键盘滚动。家,结束等 – 2015-04-03 20:58:15

+0

但是我需要保持该功能;它是必需的... – cdqqa 2015-04-03 21:29:33

回答

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

+0

谢谢,但我不想在下次取消选择。 – cdqqa 2015-04-03 21:39:18

+0

然后我有一个不同的解决方案。查看编辑。 – 2015-04-03 21:40:03

+0

这太好了!谢谢!你是否是一个Firefox的错误? – cdqqa 2015-04-03 21:43:32

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

+0

谢谢你,你的方法工作!我想知道这是一个Firefox的错误? – cdqqa 2015-04-03 21:33:39

+0

这是如何解决的?无论何时将鼠标移出输入,它都会取消选择文本。 – 2015-04-03 21:42:03

+0

解决方案非常好,它运作良好!谢谢! – cdqqa 2015-04-04 00:00:34