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