我有一个jquery方法来控制复选框事件。
当我点击“保存”时,我的“全部检查”复选框将取消选中。奇怪的是,当我在调试时放置一个断点时,我的“全部检查”复选框被检查并保持检查状态。
页面加载时调用的方法代码:
function checkIfAllCheckboxesSelected(){
var a = $("input[type='checkbox'].groupNames");
if(a.length !=0)
{
if(a.length == (a.filter(":checked").length)){
$('.allRecordsGroups').prop("checked",true);
}
else{
$('.allRecordsGroups').prop("checked",false);
}
}
}
我的方法有问题吗?我调试了一切,没有其他事件被解雇。
这是我的保存方法。我将此方法称为保存在我的jsp中。
<script>
function saveForm(){
$("#submitForm1").val("NO");
$("#sfForm").submit();
}
</script>
我的完整jsp页面是:
<div class="errMsg"><img src="http://www.equifax.com/fusion/images/cms/error-small.png" /></div>
<h2 class="fusion-h3Title">New Sample File Setup <span class="fusion-Description">Complete the Required Information, and click 'Save' or 'Submit'.</span></h2>
<span class="line"></span>
<div class="clear"></div>
<sf:form action="/audit/savesfsetup?projectNumber=${project.projectNumber}" modelAttribute="sfForm" method="post">
<div class="refineParam">
<input type="hidden" name="projectNumber" value="${project.projectNumber}"/>
<sf:input type="hidden" path="id" value="${sfForm.id}"/>
<sf:input type="hidden" path="assignedId" value="${sfForm.assignedId}"/>
<input type="hidden" id="svAcceptRecs"/>
<input type="hidden" id="svRejectRecs"/>
<label>Process name:${sfForm.assignedId}</label> <sf:input type="text" path="name" value="" cssClass="required" maxLength="30"/> <span class="italicsTxt">(Custom Name)</span>
<span class="line"></span>
<div class="fileSummary">
<!-- include for process/Job fulfillment data input fields -->
<%@ include file="../../process-fulfillment-details-withGroups.jsp" %>
<span class="line"></span>
<div class="row">
<label>Select All : </label>
<sf:checkbox path="allRecords" id="allRecords"/>
</div>
<div class="row">
<label>Records per Accept Level : </label>
<sf:input type="text" path="noOfAcceptRecs" />
</div>
<div class="row">
<label>Records per Reject Level : </label>
<sf:input type="text" path="noOfRejectRecs" />
</div>
</div>
<br/>
<div class="audit-sample">
<c:choose>
<c:when test="${sfForm.holdForMove == 'Y'}">
<sf:checkbox path="holdForMove" value="Y" checked="checked"/>Hold for additional data append via Move Statements
</c:when>
<c:otherwise>
<sf:checkbox path="holdForMove" value="Y"/>Hold for additional data append via Move Statements
</c:otherwise>
</c:choose>
</div><br/>
<span>
<sf:input type="hidden" path="submitForm" name="submitForm1" id="submitForm1"/>
</span>
</div>
<br/>
<span class="line"></span>
<div class="buttons">
<a href="<c:url value="/audit/home?projectNumber=${project.projectNumber}"/>" class="orange-btn">« Back </a>
<input type="button" value="Save" onClick="saveForm()" class='orange-btn'/>
<input type="button" value="Submit »" onClick="changeForm()" class='orange-btn'/>
</div>
</sf:form>
<script src="<s:url value='/resources'/>/js/cms_data_sf.js" type="text/javascript" language="javascript"></script>
<script type="text/javascript">
activateSelectedNav('#cms_project');
activateTab('#audit');
</script>
<script>
function saveForm(){
$("#submitForm1").val("NO");
$("#sfForm").submit();
}
function changeForm(){
$("#submitForm1").val("YES");
$("#sfForm").submit();
}
</script>
使用的js文件是:
$(document).ready(function(){
$.validator.addMethod("unixFileName", function(value, element){
return /^[a-zA-Z0-9_./-]+$/.test(value);
});
$.validator.addMethod("checkIfProcessDataChecked", function(value, element){
if($("#submitForm1").val() == 'NO') {
return true;
}
else {
var selectedItem = "";
$("#fromProcessId option").each(function(){
if($(this).attr('selected') == 'selected') {
selectedItem = $(this).val();
}
});
if(selectedItem == '0')
{
return false;
}
else return true;
}
});
$.validator.addMethod("checkIfjobIdChecked", function(value, element){
if($("#submitForm1").val() == 'NO') {
return true;
}
else {
var selectedItem = "";
$("#fromProcessId option").each(function(){
if($(this).attr('selected') == 'selected') {
selectedItem = $(this).val();
}
});
if(selectedItem == '0') {
return true;
}
else {
$("#jobId option").each(function(){
if($(this).attr('selected') == 'selected') {
selectedItem = $(this).val();
}
});
if(selectedItem == "") {
return false;
}
else return true;
}
}
});
$.validator.addMethod("checkIfItemIdChecked", function(value, element){
if($("#submitForm1").val() == 'NO') {
return true;
}
else {
var selectedItem = "";
$("#fromProcessId option").each(function(){
if($(this).attr('selected') == 'selected') {
selectedItem = $(this).val();
}
});
if(selectedItem == '0') {
return true;
}
else {
$("#jobId option").each(function(){
if($(this).attr('selected') == 'selected') {
selectedItem = $(this).val();
}
});
if(selectedItem == "") {
return true;
}
else {
$("#itemTableId option").each(function(){
if($(this).attr('selected') == 'selected') {
selectedItem = $(this).val();
}
});
if(selectedItem == "") {
return false;
}
else return true;
}
}
}
});
$.validator.addMethod("checkAcceptRecs", function(value, element){
if($("#submitForm1").val() == 'NO') {
return true;
}
else if($('input[type="checkbox"]'.allRecords).is(':checked')) {
return true;
}
else {
var value = $("#noOfAcceptRecs").val();
if(value != "" && !isNaN(value)) {
return true;
}
else
return false;
}
});
$.validator.addMethod("checkRejectRecs", function(value, element){
if($("#submitForm1").val() == 'NO') {
return true;
}
else if($('input[type="checkbox"]'.allRecords).is(':checked'))
{
return true;
}
else
{
var value = $("#noOfRejectRecs").val();
if(value != "" && !isNaN(value))
{
return true;
}
else
return false;
}
});
var container = $('div.errMsg');
$(document).ready(function() {
$('#sfForm').validate({
errorContainer : container,
errorLabelContainer: container,
rules:{
name:{unixFileName: true},
fromProcessId:{checkIfProcessDataChecked: true},
jobId:{checkIfjobIdChecked: true},
itemTableId:{checkIfItemIdChecked: true},
noOfAcceptRecs:{checkAcceptRecs: true},
noOfRejectRecs:{checkRejectRecs: true}
},
messages:{
name:"Please enter alpha-numeric process name.<br>",
fromProcessId:"Please select the input process.<br>",
jobId:"Please select the input Job Id for process selected.<br>",
itemTableId:"Please select the input item for process selected.<br>",
noOfAcceptRecs:"Please enter valid Accept records <br>",
noOfRejectRecs:"Please enter valid Reject records <br>"
}
});
});
$('#allRecords').change(function(event) {
if($(this).is(':checked')) {
$('#svAcceptRecs').val($('#noOfAcceptRecs').val());
$('#noOfAcceptRecs').val("");
$("#noOfAcceptRecs").attr('readonly','readonly');
$('#svRejectRecs').val($('#noOfRejectRecs').val());
$('#noOfRejectRecs').val("");
$("#noOfRejectRecs").attr('readonly','readonly');
}
else {
$('#noOfAcceptRecs').val($('#svAcceptRecs').val());
$("#noOfAcceptRecs").removeAttr('readonly','readonly');
$('#noOfRejectRecs').val($('#svRejectRecs').val());
$("#noOfRejectRecs").removeAttr('readonly','readonly');
}
});
});