【问题标题】:Passing a selected checkbox value using Javascript使用 Javascript 传递选定的复选框值
【发布时间】:2018-11-08 12:10:44
【问题描述】:

我有一个表,表中的最后一列有一个复选框,当用户单击一个复选框时,我想将行值传递给不同的函数,但是当我这样做时,代码没有t 似乎正在开火,我错过了什么吗?

 function GetContractors(companyName) {

    var workforce = companyName;

    $.ajax({

        type: 'GET',
        url: '@Url.Action("getContractors","Permit")',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: { "workforce": workforce },
        success: function (result) {

            $("#mainData").empty();

            $.each(JSON.parse(result),
                function (i, item) {

                    var row = i + 1;

                    $("#mainData").append(

                        "<tr>" +

                        "<td id='process_"  + row + "'" + ">" + item.ContractorName + "</td>" +

                        "<td bgcolor= " + "'" + cellColour1 + "'" + " id='process_" + row + "'" + ">" + parseJsonDate(item.InductionExpiry) + "</td>" +

                        "<td bgcolor= " + "'" + cellColour + "'" + " id='process_" + row + "'" + ">" + parseJsonDate(item.InsuranceExpiry) + "</td>" +

                        "<td id='Action" + row + "'" + ">" +

                        "<checkbox id='checkbox' class='btn btn-xs btn-success " +
                        "'" + "onclick='SelectedUser(" + item.ContractorName + ")" +
                        "'" + ">" + "<i class='glyphicon glyphicon-trash" +
                        "'" + "></i>" + "</checkbox>" + "&nbsp" +

                       "</tr>");

                });
        },
        error: function (result) {

            alert(result);
        }
    });
};

  function SelectedUser(name) 
  {
    alert(name);
    }

【问题讨论】:

  • want to pass a row value to a different function 你只是路过{ "workforce": workforce },我错过了什么吗?
  • 如果 item.ContractorName 的值是 john,javascript 将看到 onclick 处理程序代码为 SelectedUser(john),因此 javascript 将尝试查找名为 john 的变量,该变量不存在并且错误将是抛出。 TLDR:硬编码字符串参数缺少引号。
  • 我想在单击复选框时将“contractorName”传递给函数 selectUser
  • 尝试 onchange 而不是 onclick。另外,在您的 DOM 中查看究竟呈现了什么。
  • 声明你的函数“window.SelectedUser = function(name){ ... };”

标签: javascript jquery asp.net ajax


【解决方案1】:

试试这个:

"onclick='SelectedUser(\"" + item.ContractorName + "\")" +

你过去了:

onclick='SelectedUser(Bob)'

期望一个对象,但应该是

onclick='SelectedUser("Bob")'

\" 转义双引号

【讨论】:

  • 传奇!我所缺少的只是单引号,因为我在 DOM 中进行了比较
【解决方案2】:

如果值是字符串,则在撇号之间传递,如下所示:

SelectedUser(" ' + item.ContractorName + ' ").

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 2023-03-06
    相关资源
    最近更新 更多