Я вызываю метод javascript mehtod1()
для компонентов калитки в html. Мне нужно вызвать метод на основе выбранной опции в выпадающем списке.
<select wicket:id="user.type" id="user.type">
<option>dummy</option>
</select>
<input type="text" wicket:id="identity" id="identity"
onkeydown="if(document.getElementById('user.type').options[document.getElementById('user.type').selectedIndex].value=='52')return method1('abc');
else return method1('xyz');"/>
Но условие if-else не работает. Если я уберу это условие и просто вызову method1()
, то оно будет работать нормально. Я думаю, getElementById
не работает, и поэтому условие пропускается, а method1()
вообще не вызывается.
Java:
identityField = (TextField<String>) new TextField<String>("identity", new Model()).add(new ErrorIndicator());
identityField.setOutputMarkupId(true);
userTypeDropDown = (LocalizableLookupDropDownChoice<String>) new LocalizableLookupDropDownChoice<String>("user.type", String.class, "abc", this,
false, true, mobBasePage.getLocale()).setNullValid(true).add(new ErrorIndicator());
userTypeDropDown.setDefaultModel(new Model<String>());
userTypeDropDown.setRequired(true);
userTypeDropDown.setOutputMarkupId(true);
userTypeDropDown.add(new AjaxFormComponentUpdatingBehavior("onchange") {
@Override
protected void onUpdate(AjaxRequestTarget target) {
...
}
}
Я не могу удалить setOutputMarkupId(true)
, так как мне нужно также вызвать ajax для компонента.