セレクターで非表示フィールドを 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
関数は引数をオブジェクトとして受け入れます (下の画像に表示されているように)。
私の質問は、セレクターを関数に渡し、呼び出し元の関数で使用する方法です。