不让文本框获得焦点
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不让文本框获得焦点相关的知识,希望对你有一定的参考价值。
<html>
<body>
<input type="text" id="testonblur" onfocus="lostOnblur();">
</body>
<script lanuage="javascript">
function lostOnblur()
alert("test");
var testonblur = document.getElementById("testonblur");
testonblur.onblur();
</script>
</html>
像上面这个简单的例子,怎么样可以在弹出的消息框之后,点了确定不让文本框再获取焦点,一次都不可以,为什么我这样没不行的吗
public class TextBoxHelper
public static readonly DependencyProperty AutoSelectAllProperty =
DependencyProperty.RegisterAttached("AutoSelectAll", typeof(bool), typeof(TextBoxHelper),
new FrameworkPropertyMetadata((bool)false,
new PropertyChangedCallback(OnAutoSelectAllChanged)));
public static bool GetAutoSelectAll(TextBoxBase d)
return (bool)d.GetValue(AutoSelectAllProperty);
public static void SetAutoSelectAll(TextBoxBase d, bool value)
d.SetValue(AutoSelectAllProperty, value);
private static void OnAutoSelectAllChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
var textBox = d as TextBoxBase;
if (textBox != null)
var flag = (bool)e.NewValue;
if (flag)
textBox.GotFocus += TextBoxOnGotFocus;
else
textBox.GotFocus -= TextBoxOnGotFocus;
private static void TextBoxOnGotFocus(object sender, RoutedEventArgs e)
var textBox = sender as TextBoxBase;
if (textBox != null)
textBox.SelectAll();
然后在Style里面
<Setter Property="local:TextBoxHelper.AutoSelectAll" Value="True"/>
local是你引用的命名空间
参考技术B 我是做textbox的style碰到的这个问题。要求不能用硬编码实现。。求高人! 你写个附加属性,然后就可以在Style里面用了。 public class TextBoxHelper 参考技术C 要意义。
利用js在文本框末尾获得焦点
function moveEnd(obj) {
obj.focus();
var len = obj.value.length;
if (document.selection) {
var sel = obj.createTextRange();
sel.moveStart(‘character‘, len);
sel.collapse();
sel.select();
} else if (typeof obj.selectionStart == ‘number‘
&& typeof obj.selectionEnd == ‘number‘) {
obj.selectionStart = obj.selectionEnd = len;
}
}
以上是关于不让文本框获得焦点的主要内容,如果未能解决你的问题,请参考以下文章