2

我正在寻找使用 Jquery 在 JSF 中匹配inputText的id 。但它不起作用,我不知道为什么。

JSF 代码

<h:inputText id="email" value="#{userActionManager.newUser.emailID}">
</h:inputText>

jQuery代码

$(document).ready(function() {
$("inputText[id^=email]").each(function(){

    this.value = $(this).attr('title');
    $(this).addClass('text-label');

    $(this).focus(function(){
        if(this.value == $(this).attr('title')) {
            this.value = " ";
            $(this).removeClass('text-label');
        }
    });

    $(this).blur(function(){
        if(this.value == '') {
            this.value = $(this).attr('title');
            $(this).addClass('text-label');
        }
    });
});
});

我需要 inputText[id^=email] 来访问 JSF 代码中使用的 inputText id。请帮忙...

4

2 回答 2

4

首先,页面上的 ID 应该是唯一的。

接下来inputText tag从选择器中删除 ( It is not a valid jQuery element selector)

$("[id^=email]").each(function(){

您还可以将类“电子邮件”添加到 inputText 并使用类选择器:

$(".email").each(function(){
于 2013-06-03T07:18:13.167 回答
1

正如 Sushanth 提到的,您不能inputText在 jQuery 中用作选择器。您必须input改用:

jQuery("input[type='text'][id^=email]:visible").each(...

要检查的另一点是生成的客户端 ID
事实上,如果在您的表单中您没有指定prependId="false",那么表单 ID 将被添加到inputTextid 中,例如:如果表单有id="formId",则为您的输入文本生成的 ID 通常是:formId:email。您必须使用 Chrome 或 Firebug 检查 ID 才能确定。

于 2013-06-03T08:35:15.173 回答