У меня проблема с получением подсказки для работы с h: inputText с использованием jQuery. Я почти уверен, что проблема сводится к селекторам, но я не могу понять, как это исправить.
Базовый код, который я использовал, можно найти здесь:
http://www.techtricky.com/jquery-textbox-hint/
Наиболее важные вопросы, которые я нашел для помощи (но не исправили), можно найти здесь:
Связывание событий на основе ID с JSF и jQuery
Запись данных в элемент управления JSF inputText через JQuery
Соответствующая часть моего кода:
function textboxHint(id) {
var o = {
selector : 'input:text[title]',
blurClass : 'blur'
};
$e = $("input[id$='"+id+"']");
if ($e.is('input:text')) {
if (!$e.attr('title'))
$e = null;
} else {
$e = $e.find(o.selector);
}
if ($e) {
alert($e.size());
$e.each(function() {
var $t = $(this);
alert($t);
alert($t.attr('title'));
if ($.trim($t.val()).length == 0) {
$t.val($t.attr('title'));
}
if ($t.val() == $t.attr('title')) {
$t.addClass(o.blurClass);
} else {
$t.removeClass(o.blurClass);
}
До того, как
$ e = $ ('#' + id);
Я почти уверен, что в нем было что-то не так.
Используя этот способ, он получит $ e = $ e.find (o.selector); но $ e.size () предупреждает 0, а также то, как я сейчас пытаюсь.
Вот соответствующая часть моей страницы JSF:
<h:form>
<div id="greyText">
<h:inputText accesskey="s" alt="Search" id="searchBox" valueChangeListener="#{peopleBean.simplePersonQuery}" size="25" >
<f:ajax execute="searchBox" render="peopleDataTable" event="keyup" title="Search plebeians..." />
</h:inputText>
<h:outputText id="advancedText" value="▾More" />
</div>
и ... если вы можете прочитать это (намного проще с Inspect Element, извините), вот ужасный сгенерированный HTML:
<div id="greyText"><script type="text/javascript" src="/MotherOfAll/javax.faces.resource/jsf.js.html?ln=javax.faces"><!--
//--></script><input id="j_id1847166489_6e198658:searchBox" name="j_id1847166489_6e198658:searchBox" type="text" value="" onkeyup="jsf.ajax.request('j_id1847166489_6e198658:searchBox',event,{execute:'j_id1847166489_6e198658:searchBox',render:'j_id1847166489_6e198658:peopleDataTable','javax.faces.behavior.event':'keyup'})" alt="Search" size="25" accesskey="s" /><span id="j_id1847166489_6e198658:advancedText">▾More</span>
</div>
Я бы хотел опубликовать больше информации о подсказках, которые мне нужно решить, но я не могу. Я смотрел вокруг на то, как работают селекторы (не моя сильная сторона) и как извлечь то, что сейчас есть в jQuery, но у меня ничего нет.
Любая помощь будет высоко ценится, спасибо.