我有一个有几行的表。每行都有一个产品字段,一个成绩字段和一个家庭字段。
每个可用尺寸都有几个复选框。
表格中的一行如下所示:
<table class="authors-list" border=0 id="ordertable">
<tr>
<td style="font-size:10px;"><a class="deleteRow"> <img src="<?php echo base_url() ?>application/assets/images/delete2.png" /></a></td>
<td ><input type="text" id="product1" name="product1" class="rounded"/></td>
<td ><input type="text" size='5' id="qty1" name="qty1" class="rounded"/></td>
<td class="tdcheckbox">
<input type="checkbox" id="h09_1" name="h09_1" class="rounded"/>
<input type="text" id="line_1_09" name="line_1_09" value="">
<input type="text" id="size_1_09" name="size_1_09" value="09">
</td>
<td class="tdcheckbox">
<input type="checkbox" id="h12_1" name="h12_1" class="rounded"/>
<input type="text" id="line_1_12" name="line_1_12" value="">
<input type="text" id="size_1_12" name="size_1_12" value="12">
</td>
<td class="tdcheckbox">
<input type="checkbox" id="h15_1" name="h15_1" class="rounded"/>
<input type="text" id="line_1_15" name="line_1_15" value="">
<input type="text" id="size_1_15" name="size_1_15" value="15">
</td>
<td><input type="text" name="cubespercheck_1" id="cubespercheck_1" value="0" size=5></td>
<td><input type="text" name="skufamily_1" id="skufamily_1"></td>
<td><input type="text" name="skugrade_1" id="skugrade_1"></td>
</tr>
</table>
<input type="button" id="continue" value="continue">
除产品字段外,所有字段都将隐藏在最终结果中。
为了给你一个背景,我的产品代码如下: 3811460S5 38114是宽度和高度 60是长度 Cr是等级。
我想要发生的是当我点击按钮时,jquery必须遍历所有表格单元格。如果有一个CHECKED复选框并且已填充产品,则jquery必须加入以下字段: skufamily(用于行[skufamily])+长度(从单元格[大小])+等级(从行[skugrade])
此结果必须填充当前的td输入line
。所以现在每个单元格都有一个精确的sku(仅在检查和产品填充时)
skufamily,大小和等级已预先填充,因此只需要jquery循环并加入字段。
这是一个小提琴。 http://jsfiddle.net/QS56z/
我尝试过以下概念,但不能完全修改代码。
function createcodes() {
$("table.authors-list").find('input[type="checkbox"][name^="h"]:checked').each(function () {
if (<checkbox is checked>)
document.getElementById(input[type="skufamily").value +
document.getElementById(input[type="size").value +
document.getElementById(input[type="skugrade").value
});
这远非正确,所以如果你能把我放在正确的道路上,我会很感激。
一如既往地感谢百万。
答案 0 :(得分:4)
更新了您的fiddle。 我认为这段代码应该这样做。
$("#continue").click(function(){
$("table#ordertable > tbody > tr").each(function(){
var productVal = $('td:eq(0) input', this).val();
if(productVal.length > 0){
//get the code portion
var trimmedProductVal = productVal.substring(0, productVal.length - 2);
var productCode = productVal.substring(productVal.length-2, productVal.length);
//get the checked items
$('td.tdcheckbox', this).each(function(){
var currentCell = this;
$("input[type='checkbox']:checked", this).each(function(){
//concatenate the value
var valueToSet = $('input[type="text"]:eq(1)', currentCell).val();
valueToSet = trimmedProductVal + valueToSet + productCode;
//set the text value
$('input[type="text"]:eq(0)', currentCell).val(valueToSet);
});;
});
}
});
});