为什么 select2 控件不通过表单提交传递他的名字(作为正常输入)?



我用Select2填充了一个输入。但是,当提交表单时,我无法访问字段的值(也就是说,没有带有Select2字段值的键)。

我如何解决这个问题,以便能够访问服务器端Select2的值?

<form method="POST">
    <!-- this select is absent in POST params -->
    <div id="sel"></div>
    <!-- but this is present -->
    <input type="hidden" name="but_select2_absent" value="val1" />
    <input type="submit" />
</form>
<script type="text/javascript">
    $('#countries_select').select2({
        ajax: {
            data: function (term, page) {
                return {
                    q: term
                };
            },
            dataType: "json",
            url: "/ajax/countries-provider",
            results: function (data) {
                return {results: data};
            }
        }
    });
</script>

问题是你没有input,但div

你应该修改代码
<div id="sel"></div>

到像这样的东西:

 <input type="text" id="sel" name="sel" />

否则,您的表单将不包含要发布到服务器的输入。此外,您必须为输入提供一个名称,以便在服务器端捕获它(事实上,如果您不为它提供名称,它将不会被发布)。

最新更新