检查复选框值时,Jquery如何获取文本框数组值?

时间:2015-06-04 11:01:52

标签: jquery checkbox textbox

我想只通过复选框,所有文本框和数据库数组中的复选框来获取文本框值。

<tr><?php foreach($arrbook as $book) { ?>
<td><input type="checkbox" name="book" class="book" value="<?php echo $book['id_book']; ?>"/> <?php echo $book['name_book'];?></td>
<td><input type="text" name="bookprice"class="bookprice" value="<?php echo $book['book_price']; ?>"/</td>
<?php } ?></tr>
<td><div class="button"><a href="#" onClick="submitbookdata();">Save !</a></div></td></tr>

JS

<script>
function submitbookdata() {
    var bookidArr = [];
    var bookpriceArr = [];
    $('.book').each(function() {
            if (this.checked) {
                var current = $(this).val();
                $(this).parents("tr").find(".bookprice").each(function)(index, n) {
                    if ($.each('n').val() == current) {
                        bookpriceArr.push(this.value);
                    }
                });
        }
        bookidArr.push($(this).val());
    });
    alert(bookpriceArr);
}
</script>

新问题,但几乎与旧问题相同,问题是,在我的数组PHP代码中,我尝试划分为3个单元格,当我尝试获取文本框值时,同一行中的所有值文本框都是相同的值。所以这是问题代码:

<?php $cell_index = 1; foreach($arrbook as $book)
 { 
     if ($cell_index == 1)
     {
        <tr>
     }
     <td>
     <td><input type="checkbox" name="book" class="book" value="<?php echo $book['id_book']; ?>"/> <?php echo $book['name_book'];?></td>
     <td><input type="text" name="bookprice"class="bookprice" value="<?php echo $book['book_price']; ?>"/</td>
     <?php echo "\n";?>
     <?php if ( ++$cell_index > 3 )
      { ?>
          </tr>
          <?php echo "\n"; $cell_index = 1; } ?>
 <?php } ?>

Jquery和你Guru的最后一个jquery建议是一样的。现在有关于jquery过程的任何建议吗?感谢。

html代码可能就像这个伙伴:

<table>
<tr>
<th>COLUMN 1</th>
<th>COLUMN 2</th>
<th>COLUMN 3</th>
<th>COLUMN 4</th>
</tr>
<tr>
<td><input type="checkbox" name="book" class="book" value="Checkbox 1"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 2"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 3"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
</tr>
<tr>
<td><input type="checkbox" name="book" class="book" value="Checkbox 4"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="300"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 5"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 6"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="200"/></td>
</tr>
<tr>
<td><input type="checkbox" name="book" class="book" value="Checkbox 7"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="400"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 8"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="400"/></td>
<td><input type="checkbox" name="book" class="book" value="Checkbox 9"/></td>
<td><input type="text" name="bookprice"class="bookprice" value="400"/></td>
</tr>
<tr>
<td><div class="button"><a href="#" onClick="submitbookdata();">Save !</a></div></td>
</tr>
</table>

1 个答案:

答案 0 :(得分:2)

您不需要遍历每个textbox,因为每个textbox中只有一个checkboxtr。当您检查每个checked的{​​{1}}属性时,如果选中该属性,请获取与其关联的checkbox值,如下所示:

<强> DEMO

textbox

<强>更新

像这样获取function submitbookdata() { var bookidArr = []; var bookpriceArr = []; $('.book').each(function() { if ($(this).is(':checked')) {// check the checked property with .is var current = $(this).val(); bookpriceArr.push($(this).parents("tr").find(".bookprice").val()) //get the input textbox associated with it } bookidArr.push($(this).val()); }); alert(bookpriceArr); } 的值:

textbox

它将遍历bookpriceArr.push($(this).parents("td").next().find(".bookprice").val())的父td,然后找到父checkbox的下一个element女巫td,其中包含td在这种情况下,然后找到textbox,其中包含类textbox。现在您必须要小心,.bookprice的父element与其对应的td checkbox之间不应存在任何其他td >