javascript - 将隐藏字段传递给 JavaScript 函数

标签 javascript jquery asp.net

我需要将选择器中的隐藏字段传递给 JavaScript 函数。

这是我的功能

function deleteAttachments(id,selector){
            $('#proof' + id).remove();
            //show warning about save
            var tmp = selector.val();
            var sep = "";
            if (tmp != "")
                sep = ",";
            selector.val(tmp + sep + id);
        }    

上述函数调用位于以下方法内,

 function listAttachments(proofs,selector,hiddenField,after){

            //alert(hiddenField.id);
            var rows = "<table width=\"70%\">";
            for(var i=0; i<proofs.length; i++) {
                var proof = proofs[i];
                rows += "<tr id=\"proof" + proof["ID"] + "\" width=\"40%\">"
                rows += "<td><input type=\"hidden\" value=\"" + proof["filename"] + "\" id=\"Proof" + i + "\" />Uploaded: " + proof["uploaded"] + "</td>"
                rows += "<td width=\"90px\"><input type=\"button\" value=\"View...\" onclick=\"viewProof('" + proof["URL"] + "'); \" id=\"btnProof" + i + "\" class=\"btn\"></td>"
                rows += "<td width=\"90px\"><input type=\"button\" value=\"Delete\" id=\"btnDelete" + i + "\" onclick=\"deleteAttachments(" + proof["ID"] + "," + hiddenField + ");\" class=\"btn\"/></td></tr>";
            }
            rows += "</table>";
            if(after){
                selector.after(rows);
            }else{
                selector.html(rows);
            }       
        }

请在下面找到listAttachments函数调用(我使用的是asp.net并尝试了不同的方法),

listAttachments(visualIds,$('#tblProofs'),$('#hidDeletedAttachments'),true)

listAttachments(visualIds,$('#tblProofs'),$('#' + <%= hidDeletedAttachments.ID%>'),true)

当渲染时,deleteAttachments 函数接受参数作为对象(如下图所示)。

我的问题是如何将选择器传递给函数并在调用函数中使用它。

enter image description here

最佳答案

您传递的不是选择器,而是与选择器匹配的元素集合。

不要将hiddenField传递给listAttachments,而是传递hiddenField id。

listAttachments(visualIds,$('#tblProofs'), 'hidDeletedAttachments'),true)

然后在deleteAttachment函数中创建对象

function deleteAttachments(id,hiddenFieldId){
        var selector = $('#' + hiddenFieldId);
        $('#proof' + id).remove();
        //show warning about save
        var tmp = selector.val();
        var sep = "";
        if (tmp != "")
            sep = ",";
        selector.val(tmp + sep + id);
    }    

关于javascript - 将隐藏字段传递给 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19132188/

相关文章:

JavaScript:如何检查对象方法是否具有有效结果

javascript - jQuery 的 .live ('click' , fn) 和 .click(fn) 之间的性能差异

c# - .NET Core 2.1/Angular - SignalR 只需 2 分钟即可连接到集线器

c# - 带有 Windows Azure SQL 数据库的 SignalR Hub

javascript - 在 Html 5 验证触发事件之前?

php - 通过 JQuery AJAX 将 Javascript 数组传递给 PHP

javascript - 升级到 JQM 1.4 后,listviewbeforefilter 事件未在可过滤列表上触发

jquery - 删除某个按钮后 div 内没有元素的文本

c# - 有没有办法在 IIS6 中访问 asp.net Response.Headers?

javascript - 禁用图例单击 NVD3 多图