Jquery&amp; JSF找到<h:inputtext> </h:inputtext>的特定id

时间:2013-06-03 07:13:00

标签: jquery jsf

我希望使用Jquery在JSF中匹配 id inputText 。但它不起作用,我不知道为什么。

JSF CODE

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

Jquery CODE

$(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。 请帮忙......

2 个答案:

答案 0 :(得分:4)

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

接下来从选择器(inputText tag

中删除It is not a valid jQuery element selector
$("[id^=email]").each(function(){

您还可以将类“email”添加到inputText并使用类选择器:

$(".email").each(function(){

答案 1 :(得分:1)

正如Sushanth所说,你不能在jQuery中使用inputText作为选择器。您必须改为使用input

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

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