Настройка свойства bean через D3.js [duplicate]

Я отправляю этот ответ, потому что мой интерфейс администратора Virtualmin / Webmin решил, что было бы неплохо отключить мой PHP-движок. Я нашел время, чтобы найти решение, поэтому я решил поделиться с ним вы, ребята:

Также не забудьте проверить, что ни один из ваших конфигурационных файлов вашего сайта, связанных с этим конкретным хостом или виртуальным хостом, не имеет в них php_admin_value, которые отключают PHP, например:

php_admin_value engine Off

В случае сомнений прокомментируйте это ...

# php_admin_value engine Off

И перезагрузите свой веб-сервер.

35
задан BalusC 22 December 2014 в 12:10
поделиться

4 ответа

Вы должны понимать, что jQuery работает с деревом HTML DOM на стороне клиента. jQuery не работает непосредственно с компонентами JSF, как вы писали в исходном коде JSF, но jQuery работает непосредственно с деревом HTML DOM, которое создается этими компонентами JSF. Вам нужно открыть страницу в webbrowser и rightclick, а затем View Source . Вы увидите, что JSF добавляет идентификатор сгенерированных входных элементов HTML с идентификаторами всех родительских компонентов NamingContainer (таких как <h:form>, <h:dataTable> и т. Д.) С : как разделитель по умолчанию. Так, например,

<h:form id="foo">
    <p:selectManyCheckbox id="bar" />
    ...

закончится сгенерированным HTML как

<form id="foo" name="foo">
    <input type="checkbox" id="foo:bar" name="foo:bar" />
    ...

. Вместо этого вам нужно выбрать элементы точно . Однако : является особым символом в CSS-идентификаторах, представляющих псевдоселектор. Чтобы выбрать элемент с идентификатором : в идентификаторе с помощью селекторов CSS в jQuery, вам нужно либо избежать его с помощью обратного слэша, либо использовать селектор атрибутов [id=...] или просто использовать старый getElementById():

var $element1 = $("#foo\\:bar");
// or
var $element2 = $("[id='foo:bar']");
// or
var $element3 = $(document.getElementById("foo:bar"));

Если вы видите автогенерированную часть j_idXXX в идентификаторе, где XXX представляет инкрементное число, тогда вы должны указать конкретному компоненту фиксированный идентификатор, поскольку инкрементное число является динамическим и может быть изменено в зависимости от того, физическое положение в дереве.


. В качестве альтернативы вы также можете просто использовать имя класса:

<x:someInputComponent styleClass="someClassName" />

, которое заканчивается в HTML как

<input type="..." class="someClassName" />

, чтобы вы могли получить его как

var $elements = $(".someClassName");

Это позволяет лучше абстрагироваться и повторно использовать. Разумеется, эти элементы не уникальны . Только основные элементы макета, такие как заголовок, меню, содержимое и нижний колонтитул, действительно уникальны, но они, как правило, обычно не находятся в NamingContainer.


Как еще одна альтернатива, вы могли бы просто пройти сам элемент HTML DOM в функцию:

<x:someComponent onclick="someFunction(this)" />
function someFunction(element) {
    var $element = $(element);
    // ...
}

См. также:

72
ответ дан Community 21 August 2018 в 15:16
поделиться

Вы также можете использовать jQuery «Attribute Contains Selector» (здесь находится url http://api.jquery.com/attribute-contains-selector/ )

Например, если у вас есть

 <p:spinner id="quantity" value="#{toBuyBean.quantityToAdd}" min="0"/> 

, и вы хотите что-то сделать на его объекте, вы можете выбрать его с помощью

jQuery('input[id*="quantity"]')

, и если вы хотите распечатать его значение, вы можете сделайте это

alert(jQuery('input[id*="quantity"]').val());

. Чтобы узнать реальный тег html элемента, вы всегда можете посмотреть на реальный элемент html (в этом случае счетчик был переведен на вход) с использованием firebug или, например, инструментов разработчика или просмотра источник ...

Daniel.

5
ответ дан Daniel 21 August 2018 в 15:16
поделиться
  • 1
    Отличная находка! Еще лучше, вы можете использовать «Атрибуты с селектором»: api.jquery.com/attribute-ends-with-selector , который выглядит так в PrimeFaces: & quot; @ (* [id $ = 'IDUsedInPrimeFaces']) & Quot; (Это позволит вам выбрать компонент с id = "IDUsedInPrimeFaces", даже если его идентификатор клиента будет чем-то более похож на id = & quot; form: IDUsedInPrimeFaces & quot ;.) – Andrew 19 April 2017 в 18:13

Если вы используете RichFaces, вы можете проверить rich:jQuery comonent. Он позволяет указать идентификатор стороны сервера для компонента jQuery. Например, у вас есть компонент с указанным идентификатором сервера, тогда вы можете применить любой материал, связанный с jQuery, следующим образом: <rich:jQuery selector="#<server-side-component-id>" query="find('.some-child').removeProp('style')"/>.

Для получения дополнительной информации, пожалуйста, проверьте doumentation .

Надеюсь, что это поможет.

1
ответ дан nndru 21 August 2018 в 15:16
поделиться

Посмотрите, что это поможет вам, когда я выбираю опыт = Да, мой диалог, id которого является dlg3, является popup.and, если значение No, оно не откроется

-3
ответ дан Prafulla Kumar Sahu 21 August 2018 в 15:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: