如何将ID传递到下拉菜单?

时间:2014-01-20 13:01:58

标签: javascript jquery sql

当用户从下拉菜单中选择方法时,应触发事件。我有一个从数据库中获取ID的复选框,根据该ID,您可以从下拉菜单中添加或删除用户。

    var ajReq = new XMLHttpRequest();
    $(document).ready(function () {
        $('.dropdown-menu li a').click(function (e) {
            switch ($(this).text()) {
                case "Add":
                      Do something...

                   break;

                case "Remove":
                    var id = $(this).attr("Remove-something");
                        SomeAjaxMethod(id)
                    break;
            }
        }); });

这是我创建复选框的地方:

row += '<td><input type="checkbox" class="Remove" Remove-something= "' + msg[data].ID+ '"></td>'

所以问题是,如果我勾选其中一个复选框(它将包含将用于删除该特定记录的记录的ID)。如果我然后下拉菜单并选择“删除”选项,它应该将该ID传递给某些Ajax方法并从数据库中删除该记录。我收到500错误。我认为这是因为我在document.ready函数中调用了SomeAjaxMethod(id)方法。

2 个答案:

答案 0 :(得分:1)

您的“删除”案例可能应该类似于:

case "Remove":
  var id = $('.Remove:checked').attr("Remove-something");
  SomeAjaxMethod(id)
  break;

您正在使用this,但this的上下文是单击的下拉项。您需要一个不同的选择器才能获取选中的复选框并获取Remove-something属性。

答案 1 :(得分:0)

试试这个

$('.dropdown-menu li a').click(function (e) {
    var ele = $(this);
    switch (ele.text()) {
        case "Add":
            Do something...

            break;

            case "Remove":
            var id = ele.attr("Remove-something");
                SomeAjaxMethod(id)
            break;
    }
});