有什么方法可以将焦点指向表单上的特定输入字段吗?

时间:2016-10-05 12:41:39

标签: angularjs

我有一个大表单,我希望当用户点击" new"用于将焦点放置在特定输入字段中的按钮。表单上有一个网格,每个字段都有一个已知的id。请注意,它可能不是第一个字段,因此不容易使用该选项卡。

如果可能的话,会感激一些建议。节省必须手动让用户将光标移动并单击输入字段。

更新:更改"移动光标"改变焦点"

4 个答案:

答案 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个字段,则可以使用jquerydom方法进行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();