Java: метод Javascript в условии if-else в текстовом поле onkeydown не вызывается - PullRequest
0 голосов
/ 05 мая 2018

Я вызываю метод 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 для компонента.

1 Ответ

0 голосов
/ 06 мая 2018
userTypeDropDown.setMarkupId("user.type");

добавьте это .. это решит вашу проблему.

...