我无法触发Wicket onchange事件

时间:2019-05-25 21:57:26

标签: jquery html google-chrome-extension automation wicket

我正在尝试使用chrome扩展名自动填充三个下拉选择元素。我可以更改第一个下拉列表的值,但不会触发onchange事件中的检票口。检票口应该根据第一个选择加载第二个和第三个下拉列表。我在这里想念什么。

可以使用

更改第一个选择的值
( "select:first-of-type" ).val( "2" );

尝试通过

触发on更改
$( "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 :(得分:0)

过去,我在change事件中也遇到了一些不好的经历。我决定在自定义事件上进行滚动并触发该事件。

所以:

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

Wicket

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

如果您在JS中收听change,仍然可以决定在DOM上触发change,只需确保也从该处理程序中触发customevent

相关问题