这可能非常简单,但是有人可以告诉我如何在页面加载时让文本框上的光标闪烁吗?
是否可以专注于<div>使用JavaScript focus()函数?
我有一个<div>标签
<div id="tries">You have 3 tries left</div>
Run Code Online (Sandbox Code Playgroud)
我试图专注于以上<div>使用:
document.getElementById('tries').focus();
Run Code Online (Sandbox Code Playgroud)
但它不起作用.有人可以提出建议....
似乎当WPF应用程序启动时,没有任何焦点.
这真的很奇怪.我使用的每个其他框架都符合您的期望:将初始焦点放在Tab键顺序中的第一个控件上.但我已经确认它是WPF,而不仅仅是我的应用程序 - 如果我创建一个新窗口,只是在其中放置一个TextBox,并运行应用程序,TextBox没有焦点,直到我点击它或按Tab键.呸.
我的实际应用程序比TextBox更复杂.我在UserControls中有几层UserControl.其中一个UserControls有Focusable ="True"和KeyDown/KeyUp处理程序,我希望它在我的窗口打开后立即获得焦点.不过,我仍然是一个WPF新手,而且我没有太多运气搞清楚如何做到这一点.
如果我启动我的应用程序并按Tab键,则焦点转到我的可聚焦控件,它开始以我想要的方式工作.但我不希望我的用户在开始使用窗口之前必须点击Tab.
我已经使用了FocusManager.FocusedElement,但是我不确定将它设置为哪个控件(顶级窗口?包含可聚焦控件的父级?可聚焦控件本身?)或者设置它的内容.
在窗口打开后,我需要做什么才能使我的深层嵌套控件具有初始焦点?或者更好的是,将第一个可聚焦控件聚焦在Tab键顺序中?
我有一个EditText-Field并为它设置一个OnFocusChangeListener.当它失去焦点时,会调用一个方法,该方法使用数据库中的一个方法检查EditText的值.如果方法的返回值为true,则显示toast,焦点应再次返回EditText.焦点应始终返回EditText并且键盘应该显示,直到方法的返回值为false.
编辑:我想,我还没有完全清楚我的真正问题:屏幕上没有其他项目应该能够编辑,直到EditText的值被编辑为一个值,这使得方法"checkLiganame(liganame) "回归虚假.只有EditText-Field应该是可编辑的.
这是我的代码(这对我不起作用):
final EditText Liganame = (EditText) findViewById(R.id.liganame);
Liganame.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
String liganame = Liganame.getText().toString();
if (checkLiganame(liganame)) {
Toast toast = Toast.makeText(CreateTableActivity.this,
"Dieser Liganame ist bereits vergeben",
Toast.LENGTH_SHORT);
toast.show();
Liganame.requestFocus();
}
}
Run Code Online (Sandbox Code Playgroud)
和方法:
public boolean checkLiganame(String liganame) {
boolean found = false;
DatabaseHelper databaseHelper = new DatabaseHelper(this);
SQLiteDatabase db = databaseHelper.getReadableDatabase();
Cursor cursor = db.query("liga", new String[] { "liganame" },
"liganame = '" + liganame + "'", …Run Code Online (Sandbox Code Playgroud) 我有一个布局,其中包含一些像这样的视图:
<LinearLayout>
<TextView...>
<TextView...>
<ImageView ...>
<EditText...>
<Button...>
</linearLayout>
Run Code Online (Sandbox Code Playgroud)
如何以EditText编程方式设置焦点(显示键盘)?
我已经尝试了这个,只有当我Activity正常启动时它才有效,但是当我在a中启动它时TabHost,它不起作用.
txtSearch.setFocusableInTouchMode(true);
txtSearch.setFocusable(true);
txtSearch.requestFocus();
Run Code Online (Sandbox Code Playgroud) (我不想听到我有多疯狂!:)
焦点跟随鼠标也称为点对焦,指针焦点,以及(在某些实现中)草率焦点.[添加其他条款,使其更易于搜索!] X-mouse
我知道这不应该那么难,但我找不到谷歌的答案.
我想执行一段javascript,它可以清除焦点,无需提前知道焦点所在的元素.它必须适用于Firefox 2以及更现代的浏览器.
有没有办法做到这一点?
使用以下行加载页面时,我将焦点设置在某个输入字段上:
$('#myInputID').focus();
Run Code Online (Sandbox Code Playgroud)
有什么方法可以在悬停在某个元素上时撤消或删除此焦点吗?(离开此元素后无需重置焦点.)
我在jQuery中找不到与上面相反的函数,否则会在这里工作.
在查看了如何使用angular设置焦点元素的示例后,我看到他们中的大多数使用一些变量来观察然后设置焦点,并且大多数变量为他们想要设置焦点的每个字段使用一个不同的变量.在一个具有大量字段的表单中,这意味着存在许多不同的变量.
考虑到jquery的方式,但是想要以有角度的方式做到这一点,我做了一个解决方案,我们使用元素的id设置焦点在任何函数中,所以,因为我是一个非常新的角度,我想得到一些意见,如果这种方式是正确的,有问题,无论如何,任何可以帮助我做到这一点的角度更好的方式.
基本上,我创建了一个指令,用于监视用户使用指令或默认的focusElement定义的作用域值,并且当该值与元素的id相同时,该元素集自身焦点.
angular.module('appnamehere')
.directive('myFocus', function () {
return {
restrict: 'A',
link: function postLink(scope, element, attrs) {
if (attrs.myFocus == "") {
attrs.myFocus = "focusElement";
}
scope.$watch(attrs.myFocus, function(value) {
if(value == attrs.id) {
element[0].focus();
}
});
element.on("blur", function() {
scope[attrs.myFocus] = "";
scope.$apply();
})
}
};
});
Run Code Online (Sandbox Code Playgroud)
由于某种原因需要获得焦点的输入将采用这种方式
<input my-focus id="input1" type="text" />
Run Code Online (Sandbox Code Playgroud)
这里设置焦点的任何元素:
<a href="" ng-click="clickButton()" >Set focus</a>
Run Code Online (Sandbox Code Playgroud)
以及设置焦点的示例函数:
$scope.clickButton = function() {
$scope.focusElement = "input1";
}
Run Code Online (Sandbox Code Playgroud)
这是角度很好的解决方案吗?是否有问题,由于我的经验不佳,我还没有看到?
我需要从几个TextBox中删除焦点.我试过用:
textBox1.Focused = false;
Run Code Online (Sandbox Code Playgroud)
它的ReadOnly属性值是true.
然后我尝试将焦点设置在表单上,以便从所有TextBox中删除它,但这也无法工作:
this.Focus();
Run Code Online (Sandbox Code Playgroud)
并且在false选择文本框时返回该函数.
那么,如何从TextBox中删除焦点?