Я не могу вызвать событие Wicket onchange - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь автоматизировать заполнение трех выпадающих элементов выделения расширением Chrome.Я могу изменить значение первого раскрывающегося списка, но это не вызывает калитку, которая есть в событии onchange.Предполагается, что калитка загружает второй и третий выпадающий список в зависимости от первого выбора.Чего мне здесь не хватает.

Может изменить значение первого выбора с помощью

( "select:first-of-type" ).val( "2" );

Попытка запуска при изменении с помощью

$( "select:first-of-type" ).change();
$( "select:first-of-type" ).trigger('change');
$( "select:first-of-type" ).triggerHandler('change');
$( "select:first-of-type" ).trigger('onchange');
$( "select:first-of-type" ).triggerHandler('onchange');

и т. Д. И т. Д.они заполняют второй и третий варианты выбора.

<div id="new-criteria">
<select name="tabContent:contentPanel:searchCriteriaPanel:newSearchCriteria:searchFie 
ldDropDown" id="id62a9" onchange="if (function(){return 
Wicket.$(&#039;id62a9&#039;) != null;}.bind(this)()) { 
Wicket.showIncrementally(&#039;veil&#039;);}var 
wcall=wicketAjaxPost(&#039;https://www.example.com?1343- 
2.IBehaviorListener.0-tabContent-contentPanel-searchCriteriaPanel- 
newSearchCriteria-searchFieldDropDown&#039;, 
wicketSerialize(Wicket.$(&#039;id62a9&#039;)),function() { 
;Wicket.hideIncrementally(&#039;veil&#039;);}.bind(this),function() { 
;Wicket.hideIncrementally(&#039;veil&#039;);}.bind(this), function() {if 
(!function() {return Wicket.$(&#039;id62a9&#039;) != null;}.bind(this)()) 
{Wicket.hideIncrementally(&#039;veil&#039;);}return 
Wicket.$(&#039;id62a9&#039;) != null;}.bind(this));">
<option selected="selected" value="">Choose One</option>
<option value="0">Opperation</option>
<option value="1">Selection</option>
<option value="2">Category</option>

</select>
<select name="tabContent:contentPanel:searchCriteriaPanel:newSearchCriteria:operatorDropDown" disabled="disabled">
<option selected="selected" value="">Choose One</option>
</select>
<span class="value">
<input type="text" value="" name="tabContent:contentPanel:searchCriteriaPanel:newSearchCriteria:value:valueField"     disabled="disabled"/>
    </span>

Изменяет первое значение, но не заполняет другое 2

1 Ответ

0 голосов
/ 18 июня 2019

У меня был плохой опыт с change событиями в прошлом.Я решил накатить свое собственное событие и вызвать его.

Итак:

$('.myelement').trigger('customevent')

И в Wicket

this.add(new AjaxEventBehavior('customevent') {...  } )...

Вы все еще можете принять решение change в вашей DOM, если вы слушаете change в JS, просто обязательно запустите customevent из этого обработчика.

...