<p>
标记中包装了两个“缺失”字段,因此.children()函数正在捕获<p>
,而不是<p>
中的元素。谢谢,Pointy!因此,我只将<p></p>
放在mahal_id和tafkid字段之前,将其标签粘贴到错误消息之后的行上,然后将它们直接放在各自的div下,并将其包含在.children的结果中()函数。
<div id="mahal_questions" class="showHide_div">
{{soldier.mahal_status.label_tag}}
{{soldier.mahal_status}}
{{soldier.mahal_status.errors}}
{{soldier.mahal_program.label_tag}}
{{soldier.mahal_program}}
{{soldier.mahal_program.errors}}
<p>
{{soldier.mahal_id.label_tag}}
{{soldier.mahal_id}}
{{soldier.mahal_id.errors}}</p>
</div>
{{soldier.currently_serving.label_tag}}
{{soldier.currently_serving}}
<div id="currently_serving_questions" class="showHide_div">
{{soldier.idf_id.label_tag}}
{{soldier.idf_id}}
{{soldier.idf_id.errors}}
<p></p> <!--prevents the error message from running into the next label-->
{{soldier.army_unit.label_tag}}
{{soldier.army_unit}}
{{soldier.army_unit.errors}}
<p>{{soldier.tafkid.label_tag}}
{{soldier.tafkid}}
{{soldier.tafkid.errors}}</p>
</div>
我这里有两个div,每个div包含3个字段。mahal_questions包括mahal_status,mahal_program和mahal_idcurrent_serving_questions包括idf_id,Army_unit和tafkid字段。
出于某种原因,当我遍历div并在每个div中遍历元素时,我只看到每个div中的前两个元素。最后一个元素将被忽略。 (我认为当我添加一些<p>
元素时可能已经开始出现此问题,但是我不确定。)
这里是我的js(该方法旨在遍历页面上的每个div,如果div被隐藏,则遍历元素并在提交时擦除它们的值,这样隐藏字段的值就不会发送到db) :
$('#intake_form').submit(function() {
var showhideDivList = document.getElementsByClassName("showHide_div"); //To avoid errors on a page with no show/hides
if (showhideDivList.length > 0) {
//get each show/hide div
Array.from(showhideDivList).forEach(function (div) {
console.log(div);
//if this div is hidden
if ($(div).is(":hidden")){
// //for each element that is going to be shown/hidden within the div
var elements = $(div).children();
console.log("elements.length:" + elements.length);
for (var i = 0; i < elements.length; i++) {
var element = elements.eq(i);
console.log(element);
console.log("value", element.val());
element.val("");
console.log("value", element.val());
}
}
});
}
});
这是我在Django应用程序中使用的html:{{soldier.mahal_status.label_tag}} {{...] >>>>
请参阅Pointy在评论中的回答。问题是我在<p>
标记中包装了两个“缺失”字段,因此.children()函数正在捕获<p>
,而不是<p>
中的元素。谢谢,Pointy!因此,我只将
<p></p>
放在mahal_id和tafkid字段之前,将其标签粘贴到错误消息之后的行上,然后将它们直接放在各自的div下,并将其包含在.children的结果中()函数。
<p>
标记中包装了两个“缺失”字段,因此.children()函数正在捕获<p>
,而不是<p>
中的元素。谢谢,Pointy!因此,我只将<p></p>
放在mahal_id和tafkid字段之前,将其标签粘贴到错误消息之后的行上,然后将它们直接放在各自的div下,并将其包含在.children的结果中()函数。