1

当我手动构建我的输入时,我可以专注于它但是当我使用 JSF 标记生成我的输入时,表单名称会附加到 id 并且我不能再引用它。

我试过了

$("#username").focus();

$("#loginForm:username").focus();

没有任何运气。有什么建议吗?

这是生成的jsf html:

<input id="loginForm:username" type="text" name="loginForm:username" size="30" />

这就是我触发呼叫的方式...

$(document).ready(function() {
    alert("checkA");
    $("#username").focus();
    alert("checkB");
});
4

2 回答 2

3

:是 CSS 标识符中的一个特殊字符。你需要通过\. 请注意,\本身也是 JavaScript 字符串中的一个特殊字符,因此要表示实际的\,您需要将其双重转义为\\.

所以,这应该这样做:

$("#loginForm\\:username").focus();

也可以看看:

于 2012-07-20T01:23:51.260 回答
1

尝试:

$("input[name*='loginForm']").focus(); 
于 2012-07-20T00:35:56.950 回答