2012-09-13 65 views
1

好吧,我正在运行一个测试一堆以查看它们是否已更改的javascript,如果它们已更改,则需要查看是否选中了复选框。但是,由于某些原因,我没有使用表单来执行此操作。下面是表的显示代码:当保存按钮被按下获取复选框的值

<table class="db-view-sku-table"> 
<thead> 
    <tr> 
     <th>Merge <br />Callouts</th> 
     <th>Current Page</th> 
     <th>Current Callout</th> 
     <th>New Page</th> 
     <th>New Callout</th> 
     <th>MFG SKU</th> 
     <th>Client SKU</th> 
     <th>Description</th> 
    </tr> 
</thead> 
<tbody> 
    <tr class="odd changed_value"> 
     <td class="hidden db-sku-nid">192297</td> 
     <td class="hidden db-co-nid">212300</td> 
     <td class="merge"><input type="checkbox" name = "mergeme" class="checked" /></td> 
     <td class="db-current-page"><a href="/node/212299" target="_blank">6</a></td> 
     <td class="db-current-co">A</td> 
     <td class="db-move-page"><input type="text" class="page-select" size="4" value="" /></td> 
     <td class="db-move-co"><input type="text" class="co-select" size="4" value="A" /></td> 
     <td class="db-sku"><a href="/plain/node/192297/edit" class="popup" title="Click to view global SKU details in popup window.">AAG794200</a></td> 
     <td class="db-client-sku editable-text">AAG-794200</td> 
     <td class="db-description">AT-A-GLANCE Sorbet Wkl/Mthly Plnr</td> 
    </tr> 
    <tr class="even changed_value"> 
     <td class="hidden db-sku-nid">97160</td> 
     <td class="hidden db-co-nid">212301</td> 
     <td class="merge"><input type="checkbox" name = "mergeme" class="checked" /></td> 
     <td class="db-current-page"><a href="/node/212299" target="_blank">6</a></td> 
     <td class="db-current-co">A</td> 
     <td class="db-move-page"><input type="text" class="page-select" size="4" value="" /></td> 
     <td class="db-move-co"><input type="text" class="co-select" size="4" value="A" /></td> 
     <td class="db-sku"><a href="/plain/node/97160/edit" class="popup" title="Click to view global SKU details in popup window.">AAG76PN0105</a></td> 
     <td class="db-client-sku editable-text">AAG-76PN0105</td> 
     <td class="db-description">QUICKNOTES WKLY/MNTH, SPECIAL EDITION</td> 

代码:

function setupMassSave() { 
$('.save-button').click(function() { 
    var merge = getMergeList(); 
    var skus = getSkuList(); 
    var pages = getPageList(); 
    var callouts = getCalloutList(); 
    var currco = getCurrCalloutList(); 
    $.ajax({ 
     url: '/skumove/save_all/' + merge + '/' + skus + '/' + pages + '/' + callouts + '/' + currco, 
     cache: false, 
     success: refreshView 
    }); 
}); 
} 

function getSkuList() { 
var slist = []; 
$('.changed_value').each(function(index) { 
    if(!$(this).children('.merge').children('.checked').checked){ 
     slist.push($(this).children('.db-sku-nid').text()); 
    } 
}); 
return slist; 
} 
function getMergeList() { 
var mlist = []; 
$('.changed_value').each(function(index) { 
    if($(this).children('.merge').children('.checked').checked) { 
     mlist.push($(this).children('.db-sku-nid').text()); 
    } 
}); 
return mlist; 
} 

我有一个问题的,仅仅是这两个功能。他们其他3个功能工作正常,并返回我需要的值。我知道这个问题在('.merge')。点击区域内。

感谢您的帮助。

回答

4

.checked是(布尔)香草JavaScript属性,你想申请到一个jQuery对象。这就是为什么它不起作用。

替换

$(this).children('.merge').children('.checked').checked 

与任一

$(this).children('.merge').children('.checked')[0].checked 

$(this).children('.merge').children('.checked').is(':checked') 

$(this).children('.merge').children('.checked:checked').length 
+0

我用下面的:01 ($:this).children('。merge')。children('。checked')。is(':checked')){\t if – webdevsoup

1

使用伪选择:而不是检查得到的类别选择的.checked

if($(this).children('.merge').children(':checked').length) { 
    mlist.push($(this).children('.db-sku-nid').text()); 
}