2011-04-21 86 views
0

下面是一个样表:防止标签文本高亮显示/禁用标签文本选择

<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

看看这里瑟是否有帮助:http://stackoverflow.com/questions/499126/ jquery-set-cursor-position-in-text-area – tenshimsm 2011-04-21 19:18:57

+0

但这就是我们喜欢的方式。你为什么不呢? – mplungjan 2011-04-21 20:22:37

+0

@tenshimsm,太好了!但我只是不知道如何将Mark的代码包含在我的表单嵌入代码中,因此将光标置于默认值的末尾。我想知道你是否可以帮助我。 – Mori 2011-04-22 08:20:57

回答

0

您好,这里是解决方案。荤一:

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/

+0

嗨Naveed,感谢您的回答,但它似乎并没有在Firefox和Opera的工作。 – Mori 2011-04-21 20:09:18

0

这是工作,至少在Firefox。它触发了 “结束” 键:

$('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; 
}); 
+0

我不知道为什么它只适用于Firefox – tenshimsm 2011-04-22 16:35:46

+0

我需要一个跨浏览器的解决方案。请你让我知道如何在我的表单中包含Mark的代码?或者,也许解决方案提供以下参考:[链接] http://stackoverflow.com/questions/1909220/define-cursor-position-in-form-input-field – Mori 2011-04-22 17:26:37

+0

对不起,我试过jCaret,jquery.caret改变了我的代码,甚至做了它,我没有在除Firefox之外的其他浏览器中工作。 – tenshimsm 2011-04-26 00:27:31

2
var $yourInput; 

$yourInput = $("#your_input"); 

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

selectRange功能,你可以在这里找到:jQuery Set Cursor Position in Text Area