在提交表单

时间:2015-08-17 13:26:12

标签: javascript jquery html forms

我创建了一个带有两个html多选的小部件 - "可用"和#34;选择"。用户从"可用"中选择项目它们显示在"选择",非常简单的东西。我很感兴趣"选择"值(另一个不具有名称属性)但是要发送所有值,必须选择它们。

我试图在jQuery中选择它们"提交"事件,但由于某种原因,它不起作用。我可以看到,在发送表单之前,它们都已被选中,但数据本身并未发送。

        var form = this.$selectedSelect[0].form;
        $(form).on('submit', function(e) {
            this.$selectedSelect.find("option").prop("selected", true);
        }.bind(this));

我想避免为每个"选择"创建隐藏字段。条目。

2 个答案:

答案 0 :(得分:1)

在选择所有项目之后,您应该阻止原始提交过程并调用一个新过程:

var form = this.$selectedSelect[0].form;
    $(form).submit(function(e) {
        e.preventDefault();
        this.$selectedSelect.find("option").prop("selected", true);
        this.submit();
    });

UPDATE:

您甚至不需要阻止默认行为,以下简单的解决方案已足够:

 var form = this.$selectedSelect[0].form;
 $(form).submit(function(e) {
    this.$selectedSelect.find("option").prop("selected", true);
 });

答案 1 :(得分:1)

你需要这样的东西

<script>
    $(document).ready(function() {
        $("form").on("submit",function(eve){
            eve.preventDefault();
            $("select#someSelectId").find("option").prop("selected", true);
            $(this).submit();
        })
    })
</script>