如何通过使用MVC点击图像从锚标记传递ID值onclick函数?

时间:2017-12-12 12:12:18

标签: javascript jquery asp.net ajax asp.net-mvc

基于数据库的值状态将为Y或N.如果是,则表示将显示active.png。它工作正常。当我点击active.png图像然后锚标记onclick="GetRecords1(' + item.ModuleID + ');功能ID值不会传递给事件。

如何传递active.png图像,单击ID值。

<script>
    $(document).ready(function () {
        $("#DomainID").change(function () {
            var id = $(this).val();
            $("#example tbody tr").remove();
            $.ajax({
                type: 'POST',
                url: '@Url.Action("ViewModules")',
                dataType: 'json',
                data: { id: id },
                success: function (data) {
                    var items = '';
                    $.each(data.EmpList, function (i, item) {
                        $("#findValue").show();
                        /*Find Role here - Comparing Emp List ModuleId to RoleList ModuleId*/
                        var RoleName = $(data.role).filter(function (index, item) {
                            return item.ModuleID == item.ModuleID
                        });

                        if (item.ParentModuleID == -1) {
                            item.ModuleName = " -- " + item.ModuleName
                        } else {
                            item.ModuleName = item.ModuleName
                        }
                        var Status = '';
                        if (item.Status == "Y") {
                            Status = '<a href="JavaScript:void(0)" onclick="GetRecords1(' + item.ModuleID + ');" title="Disable status"><img src="/img/Active.png" height="22" width="42"/></a>'
                        } else {
                            Status = '<a href="JavaScript:void(0)" id="inActiveStatus" title="Active status"><img src="/img/InActive.png" height="22" width="42"/></a>'
                        }

                        var rows = "<tr>"
                            + "<td>" + (i + 1) + "</td>"
                            + "<td>" + item.ModuleName + "</td>"
                            + "<td>" + item.Url + "</td>"
                            + "<td>" + RoleName[i].RoleName + "</td>"
                            + "<td>" + '<a href="@Url.Action("EditModules", "Account")?id=' + item.ModuleID + '" class="font-icon font-icon-pencil" title="Edit"></a>&nbsp;&nbsp;&nbsp;' + Status + "</td>"
                            + "</tr>";
                        $('#example tbody').append(rows);
                    });
                },
                error: function (ex) {
                    var r = jQuery.parseJSON(response.responseText);
                        alert("Message: " + r.Message);
                        alert("StackTrace: " + r.StackTrace);
                        alert("ExceptionType: " + r.ExceptionType);
                }
            });
            return false;
        });
    });
</script>

通过:

<script>
    $(document).ready(function () {
        $('#example tbody').on('click', function GetRecords1(ModuleID) {
            var id = ModuleID;
            alert("Status Clicked:" + ModuleID);
        });
    });
</script>

2 个答案:

答案 0 :(得分:1)

<a id="123" onclick="someFunction(this.id)"></a>

javascript 代码:-

someFunction(id){
console.log(id)
}

答案 1 :(得分:0)

为什么使用内嵌JavaScript。您可以轻松使用事件委托on来绑定点击事件。

这是您修改后的代码。

Status = '<a href="JavaScript:void(0)" data-id="@item.ModuleID" data-status="@item.Status" class="user-status" title="Disable status"><img src="/img/Active.png" height="22" width="42"/></a>'

在标记中添加了用户状态类。并将id分配给data-id属性。

现在从点击事件中获取id。

$(document).on('click','.user-status', function(){
  var getId = $(this).data('id');
  var getStatus = $(this).data('status');
  alert("Status Clicked:" + getId );
});