【发布时间】:2011-06-23 16:04:28
【问题描述】:
我有一个如下所示的表单:
<form id="addClassesToDoc" action="">
<table id="classesTable" style="border-collapse: collapse" cellpadding="3">
<thead>
<tr style="background-color: #a04a56; color: #ffffff;">
<td width="50px"></td>
<td width="75px"><b>Class<br />Number</b></td>
<td width="500px"><b>Class Name</b></td>
</tr>
</thead>
<tbody>
<tr bgcolor="#EFE5D3">
<td align="center"><input type="checkbox" class="chkAddClass" name="classesToAddToDoc[]" value="45" /></td>
<td>PHB7075</td>
<td>Organizational Systems and Leadership </td>
</tr>
<tr bgcolor="">
<td align="center"><input type="checkbox" class="chkAddClass" name="classesToAddToDoc[]" value="126" /></td>
<td>TEST111</td>
<td>Test add new class</td>
</tr>
</tbody>
</table>
</form>
我正在使用此代码验证是否在 $.ajax() 调用之前检查了任何复选框:
var classesToAddToDoc = new Array();
if ($('input.chkAddClass:checked').length > 0) {
// At least one class checked
// Get the id(s) of the checked class(es)
$.each($('#classesTable input[name="classesToAddToDoc[]"]:checked'), function() {
classesToAddToDoc.push($(this).attr('value'));
});
} else {
// No docs checked
//alert('Please check at least one class to add to the selected document.');
$.each($('#classesTable input[type="checkbox"]').parent().effect('highlight',{color: '#A04A56'},1500));
return false;
}
在 else 子句中,当我取消注释警告并且注释了突出显示行时,警告显示并且页面保持在同一位置。
但是当我注释掉alert,取消注释高亮行时,页面刷新,复选框单元格高亮,地址栏添加表单参数,类似这样:
[pageAddress]?docsList=46&submitAddClassesToDoc=Add+Checked+Classes+to+Selected+Document
为什么突出显示会这样做,我该如何阻止它?
【问题讨论】:
-
我不明白 URL 是如何变化的。你能更详细地解释一下吗?另外,我不确定如何更改每个部分 - 我仍在弄清楚 jQuery 基础知识...
-
另外,我在 .each() 的文档中看到的示例中包含功能 - 在我的情况下如何使用它?
-
查看我的编辑。您是否有机会制作一个重现页面刷新问题的最小演示?例如使用jsfiddle.net 或jsbin.com。