防止标签文本高亮/禁用标签文本选择

3

这里是一个样本表单:

<form action="#" method="post">
  Name:<br />
  <input type="text" name="name" value="your name" /><br />

  E-mail:<br />
  <input type="text" name="mail" value="your email" /><br />

  <input type="submit" value="Send"> 
</form>

当你切换到文本输入框时,文本的值会被突出显示。如何禁用这个功能?
任何帮助都将不胜感激!
Mike

1
看一下这里,如果有帮助的话:https://dev59.com/GXRB5IYBdhLWcg3w1Khe - msmafra
但这就是我们喜欢的方式。你为什么不喜欢呢? - mplungjan
@tenshimsm,太好了!但我不知道如何将Mark的代码包含在我的表单嵌入代码中,以便将光标放置在默认值的末尾。我想知道你是否能帮助我解决这个问题。 - Mori
3个回答

2
var $yourInput;

$yourInput = $("#your_input");

setTimeout(function() {
  return $yourInput.selectRange($yourInput.val().length, $yourInput.val().length);
}, 10);

您可以在此处找到selectRange函数:jQuery设置文本区域中的光标位置


1

你好,这里是解决方案。不太优雅的一个:

HTML:

<input type="text" id="a" />
<input type="text" id="b" />

JavaScript:

$("input").focus(function(){
    if($(this).val() != ""){
        var elm = $(this);
        var val = elm.val();
        setTimeout(function(){elm.val(val);},1);
    }
});

演示:http://jsfiddle.net/naveed_ahmad/S2UPs/

嗨,Naveed,谢谢你的回答,但在Firefox和Opera中似乎不起作用。 - Mori

0

这个可以工作,在Firefox中至少是有效的。它触发了"End"键:

$('input[type=text]').bind('focus',function(){
    var e = jQuery.Event("keydown");
     e.which = 35; // # key code for end key
    $("input[type=text]").trigger(e);
    return false;
});

我需要一个跨浏览器的解决方案。请问您如何在我的表单中包含Mark的代码?或者也许可以使用以下参考链接提供的解决方案:[link]http://stackoverflow.com/questions/1909220/define-cursor-position-in-form-input-field - Mori
抱歉,我尝试了jCaret和jquery.caret,但它们改变了我的代码,而且除了Firefox浏览器之外,其他浏览器都无法正常工作。 - msmafra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接