提交表单后,我正在对数据进行序列化,这样我可以捕获字段并将记录添加到数据库中。我知道任何具有'name'属性的字段都将由jQuery序列化。
在名为“ rrule_section”的div中,我根本不希望任何这些输入被序列化!我需要保留其“名称”属性,以便其他某些JavaScript可以正常工作,因此我不能简单地将“名称”留空以解决此问题。
我在rrule_section中将有很多不同的输入类型,但这是下面的示例表格。
<div id="formEventModal" class="modal fade" role="dialog" aria-hidden="true" data-keyboard="false" data-backdrop="static">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header"></div>
<div class="modal-body">
<form id="appointmentForm" class="form-horizontal">
<input disabled type="text" id="attending_name" name="attending_name" class="form-control" value="">
<input type="text" class="form-control" id="waiting_list_start" name="waiting_list_start" />
<div name="rrule-gen" id="rrule_section">
<input type="radio" name="event-recurring" value="no" checked="checked"> No
<input type="radio" name="event-recurring" value="yes"> Yes
<select name="freq">
<option value="daily" class="days">Daily</option>
<option value="weekly" class="weeks">Weekly</option>
<option value="monthly" class="months">Monthly</option>
<option value="yearly" class="years">Yearly</option>
</select>
<input type="text" name="until" id="end-date" disabled="disabled" class="hasDatepicker dont_serialize">
</div>
</form>
...
...
提交表单后,我有以下提示:
$.ajax({
url: "ajax_insert.php?table=appointments",
dataType: 'json',
type: "POST",
data: $('#formEventModal #appointmentForm').serialize(),
....
我当时以为我需要使用.not选择器,但它仍会序列化所有内容:
$('#formEventModal #appointmentForm').not('#rrule_section').serialize()
如何阻止rrule_section输入序列化?
答案 0 :(得分:1)
由于tcj使我走上了正确的轨道,所以我最终只向不需要序列化的每个输入添加了一个类。然后我用这个:
X 10 rows overlapping with T and 2 different
T has 10 overlapping with X and 2 different
X has 10 overlapping with P and 1 different
T has 10 overlapping with P and 3 different
谢谢!
答案 1 :(得分:0)
在jQuery中选择多个元素时,您必须在每个元素后加上逗号,以使data: $('#formEventModal, #appointmentForm').serialize()
,但在您的情况下却无济于事,您可以像这样手动添加字段:
data: $('#attending_name, #waiting_list_start').serialize(),
或其他类似的替代方法:
data: 'attending_name=' + $('#attending_name').val() + '&waiting_list_start=' + $('#waiting_list_start').val();
或使用此方法自动收集#rrule_section
之外的所有字段:
data: $('#appointmentForm > :not([id="rrule_section"])').serialize();
或者这也等同于遵循您编写它的方式(您几乎是对的,只是忘记了选择孩子):
data: $('#appointmentForm').children().not('#rrule_section').serialize();