提交由javascript填充的表单会导致Wicket中出现空值

时间:2015-09-22 18:01:51

标签: javascript java jquery wicket

我要做的是用两个多重选择进行交叉选择。当我点击一个按钮时,一个简单的javascript会将值从一个转移到另一个。这工作得很好,但是当我尝试提交整个表单时,我得到的只是空列表。这是我的组件的代码。

   ListMultipleChoice<String> valueControl = new ListMultipleChoice<>("customValue",
                new DocumentModel(owner, property)/*my own model for setting properties*/,optionsList,
                new DocumentRenderer(options));
        valueControl.setRequired(property.isRequired());
        valueControl.setLabel(Model.of(property.getCaption()));
        valueControl.setOutputMarkupId(true);
        valueControl.setMarkupId("select-to");
        ListMultipleChoice<String> multiSelect = new ListMultipleChoice<>("options",new Model(), optionsList,
                new DocumentRenderer(options)); //this is my own renderer
        add(multiSelect);
        add(valueControl);

这是我的标记代码。

<html xmlns:wicket="http://wicket.apache.org/">
<wicket:extend>
    <div>
        <select wicket:id="options" id="select-from" multiple
            class="form-control" data-placeholder="Nothing selected">
            <option>Select me</option>
        </select>
        <button type="button" id="btn-add">             
        </button>
        <button type="button" id="btn-remove">              
        </button>
        <select wicket:id="customValue" class="form-control" multiple id="select-to"
            data-placeholder="Nothing selected">
            <option>Select me</option>          
    </div>
    <script type="text/javascript">
    $(document).ready(function() {
        $('#btn-add').click(function(){
            $('#select-from option:selected').each( function() {
                    $('#select-to').append("<option value='"+$(this).val()+"' selected='selected'>"+$(this).text()+"</option>");
                $(this).remove();
            });
        });
        $('#btn-remove').click(function(){
            $('#select-to option:selected').each( function() {
                $('#select-from').append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");
                $(this).remove();
            });
        });
        });
    });
    </script>
</wicket:extend>
</html>

很抱歉,如果我错过了这个过程中的某些内容。提前谢谢大家。

1 个答案:

答案 0 :(得分:1)

所以你要重新发明org.apache.wicket.extensions.markup.html.form.palette.Palette?为什么呢?

相关问题