我有一个由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>
答案 0 :(得分:2)
问题是您没有input
而是div
您应该更改代码
<div id="sel"></div>
对于这样的事情:
<input type="text" id="sel" name="sel" />
否则,您的表单将不包含要发布到服务器的输入。此外,你必须给输入命名,所以它可以在服务器端被捕获(事实上,如果你不给它一个名字,它将不会被发布)。