Java:在没有调用textfield onkeydown的if-else条件下的Javascript方法

时间:2018-05-05 10:07:01

标签: javascript java wicket

我在html中的wicket组件上调用了一个javascript方法mehtod1()。我必须根据下拉列表中的选定选项调用方法。

<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()

爪哇:

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 :(得分:2)

userTypeDropDown.setMarkupId("user.type");

添加此..这将解决您的问题。