将变量从复选框传递到onclick函数

时间:2014-02-14 22:21:52

标签: javascript jquery checkbox onclick

我创建了一个表格,每行都是一个复选框。 我想要做的是当有人检查一行或多行时,会出现垃圾桶图标。 单击垃圾可以删除所选行。

这是我到目前为止写的代码:

可以显示垃圾的div:

<div class="hidden" id="adminPanelShow">
      <img src="../images/garbage.jpg" class="adminPanelIcons"/><br>
      <img class="hrLine" src="images/line.png"/>
</div>

表:

<table>
         <tr><td><input type = "checkbox" name="idPriv[]" id="idPriv"  onclick="evaluateIT(this)" data-related-item="adminPanelShow" value ="<?php echo $value["id"]?>" /></td>
             <td><input type="text" name="userName[]" id="userName" class="adminPanel" value="<?php echo $value["userName"]?>"/></td>
             <td><input  name="firstName[]" type="text" id="firstName" class="adminPanel" value="<?php echo $value["firstName"]?>"/></td>
             <td><input  name="lastName[]" type="text" id="lastName" class="adminPanel" value="<?php echo $value["lastName"]?>"/></td>
         </tr>
</table>

javascript代码:

function evaluateIT(obj){

    var item = $(obj);
    var relatedItem = $("#" + item.attr("data-related-item"));
    var length = $("input:checked").length;

    if(item.is(":checked") )
        relatedItem.fadeIn();
    else if(item.not(":checked") && length == 0)
        relatedItem.fadeOut();   

}

现在,一切都运行良好,但是如何将所选复选框中的值(id number ..)传递给垃圾桶的onclick函数? 这意味着,我希望每次点击垃圾,我都可以使用所选复选框的值进行一些操作。

1 个答案:

答案 0 :(得分:1)

我想当你说“一切都运行良好”时,你的意思是说代码直到 garbage-can 显示正常,但不是 garbage-can 功能。我假设你有这个javascript函数。请更清楚,这将使人们能够帮助您。

现在,

看看这个例子,你可以在你的案例中实施。我尝试了这个,它的工作原理

HTML:

<div id="garbagecan" style="border: 1px solid red">garbagecan</div>
<ul id="books">

    <li><input id="book1" value="book1" type="checkbox"><span>Book1</span>
    </li>
    <li><input id="book2" value="book2" type="checkbox"><span>Book2</span>
    </li>
    <li><input id="book3" value="book3" type="checkbox"><span>Book3</span>
    </li>
    <li><input id="book4" value="book4" type="checkbox"><span>Book4</span>
    </li>
</ul>

Javascript代码[使用jquery]

$(document).ready(function($) {

    $("#garbagecan").hide();

    $("#garbagecan").click(function() {
        var selectedIds = $("#books :checkbox:checked").map(function() {
            return $(this).val();
        }).get();
        alert(selectedIds);

    });

    $("#books :checkbox").click(function() {

        if ($("#books :checkbox:checked").length > 0) {
            $("#garbagecan").show();
        } else {
            $("#garbagecan").hide();
        }
    });
});

这样做:垃圾箱div将被隐藏,直到您选择至少一个复选框。当您选择了至少一个复选框时,当您单击垃圾箱时,我正在警告所选值的数组。调用.get()方法时,生成的jquery对象将转换为数组。

希望这有帮助。