我有一个大表单,我希望当用户点击" new"用于将焦点放置在特定输入字段中的按钮。表单上有一个网格,每个字段都有一个已知的id。请注意,它可能不是第一个字段,因此不容易使用该选项卡。
如果可能的话,会感激一些建议。节省必须手动让用户将光标移动并单击输入字段。
更新:更改"移动光标"改变焦点"
答案 0 :(得分:3)
这是一个解决方案 -
Angular js为您提供了使用某些额外功能的优势,因此您无需使用jquery。
以下是实现自动对焦功能的一种方法。
<div class="button" input-focus>{{element.idORname}}</div>
并在此处定义指令。
.directive("inputfocus",function($timeout){
return {
link : function(element,attributes){
element.bind('click',function($timeout){
$timeout(function(){
element/*.parent() or.child()*/.find('type of the field you want to select')[0].focus();
);
);
);
如果您的代码中有javascript
个字段,则可以使用jquery
或dom
方法进行nested
遍历。
在用户完成单击事件后,浏览器呈现后调用焦点需要$ timeout
正如您所看到的,find('')[0]
替代find('').focus
,因为后者需要使用jquery
。
答案 1 :(得分:1)
将“自动对焦”属性放在要对焦的元素上。
示例:
Name: <input type="text" name="name" autofocus />
答案 2 :(得分:1)
如果已知所有输入ID,只需使用它。
$("#NewButton").on('click', function(){
//Other code.
$("#IdOfInputToBeFocused").focus();
});
答案 3 :(得分:0)
自定义数据属性可以像这样使用jQuery
<input data-field="special" />
然后可以像这样调用该特定字段
jQuery('input').find("[data-field='special']").focus();