如何在运行时动态关注输入元素

时间:2014-12-18 08:51:05

标签: javascript jquery html knockout.js

我想在运行时动态关注input元素。我将传递输入名称运行时,然后它应该相应地集中输入。

这是输入元素的代码

<input type="text" id="txtNameOfEmp" data-bind="event: { blur: ValidateName.bind($data,txtNameOfEmp) } " />

然后在我的视图模型中,我试图关注如下

    self.ValidateName = function (val) {
        var inputName = val.id;

            // some logic for validation
            alert("Name is not valid");
            $("'#" + inputName + "'").focus()

    };

我收到错误

JavaScript runtime error: Syntax error, unrecognized expression: '#txtNameOfEmp'

如何动态聚焦?

UPDATE1

我也在下面尝试过,但它没有给出错误,但也没有设置任何焦点

$(inputName).focus();

3 个答案:

答案 0 :(得分:2)

你的报价太多了。您不需要任何内容​​,因为您已将id包装在变量中。

试试这个:

$("#" + inputName).focus()

答案 1 :(得分:1)

Man ...我看到你的代码中有一个错误:

删除单引号:

use $("#"+inputName).focus();

答案 2 :(得分:0)

试试这个:

  $(inputName).focus();