我正在使用.load jQuery函数检索表单并将其放在文档正文中。
之后,我正在更改选择值(手动)并尝试使用ajax .post请求保存表单。
jQuery以任何方式检索的选择值(使用.val或sereilize)都不会更改。值保持不变。
如果没有 prevetnDefault (使用普通的POST请求),表单会按预期保存。但是select或.sereilize表单上的.val都返回旧的选择值(未真正选择)。
<form
id="phrase-fake-form-12243"
method="POST"
action="/phrase-fake/change-group/12243/3">
<input type='hidden' name='csrfmiddlewaretoken' value='UQuHH3ahAnBaSUPsCBaF1QKF4I0O48AO' />
<select name="group" id="phrase-fake-modal-group-dropdown">
<option value="20393"
selected="selected">
1
</option>
<option value="20405"
>
2
</option>
<option value="20417"
>
3
</option>
</select>
<input type="submit" value="Сохранить" class="ui button blue">
</form>
JS:
<script>
$("#phrase-fake-form-12243").submit(function (event) {
console.log($('#phrase-fake-form-12243').serialize())
console.log($('#phrase-fake-modal-group-dropdown').dropdown('get value'))
$.post('/phrase-fake/change-group/12243/3', $('#phrase-fake-form-12243').serialize())
event.preventDefault();
});
</script>
我做错了什么?实际上它似乎是一个bug ..
答案 0 :(得分:0)
尝试使用此库form2js
您只需要在jQuery对象上调用方法.toObject()
。
例如,如果这是你的html
<form id="test">
...
</form>
您可以通过
获取所有表单元素值var formObject = $("#test").toObject();