我的表单中有一个注释部分,允许具有权限的用户向特定记录添加信息。此非部分的一部分必须允许用户删除自己的注释或编辑自己的注释。我似乎遇到的问题是,当我添加一个似乎确认删除的 Jquery 模态菜单时,每个注释都会弹出菜单,因此,如果我的记录中有 5 个注释,则意味着我需要弹出 5 个菜单关闭。有没有办法让我定位正确的注释,以便只显示其指定的菜单?
ASP 代码部分:
<%
While ((Repeat1__numRows <> 0) AND (NOT RS_Notes.EOF))
%>
<%
Dim RS_Poster
Dim RS_Poster_cmd
Dim RS_Poster_numRows
Set RS_Poster_cmd = Server.CreateObject ("ADODB.Command")
RS_Poster_cmd.ActiveConnection = MM_Logistics_STRING
RS_Poster_cmd.CommandText = "SELECT EmpID, F_Name, L_Name FROM Employee INNER JOIN Notes ON Employee.EmpID = Notes.Emp_ID WHERE Notes.EMP_ID = "& RS_Notes.Fields.Item("Emp_ID").Value &""
RS_Poster_cmd.Prepared = true
Set RS_Poster = RS_Poster_cmd.Execute
RS_Poster_numRows = 0
%>
<tr>
<td colspan="4" id="Table-Row-Parent-Comments" ><br>
<div id="Table-Row-Child-CommentsTitle">
<div id="Table-Row-Child-CommentsTitle-Text">
Posted By:<%=(RS_Poster.Fields.Item("F_Name").Value)%> <%=(RS_Poster.Fields.Item("L_Name").Value)%> Date:<%=(RS_Notes.Fields.Item("Note_Date").Value)%>
<%If RS_Poster.Fields.Item("EmpID").Value = RS_User.Fields.Item("EmpID").Value Then%>
<div id="Table-Row-Child-CommentsTitle-Text-EditDelete">
<div align="right">
Edit/<a href="#" id="Table-Content-DeleteNotes-Link">Delete</a>
</div>
</div>
<%End If%>
</div>
</div>
<div id="Table-Row-Child-Comments">
<div id="Table-Row-Child-Comments-Text">
<p><%=(RS_Notes.Fields.Item("Note_Text").Value)%></p>
</div>
<br>
</div>
</td>
</tr>
<tr>
<td>
'SECTION OF MY CODE WHERE I ADD THE MODAL MENU FOR JQUERY
<form ACTION="<%=MM_noteDeleteAction%>" METHOD="POST" name="Modal-Menu-DeleteNote-Form" id="Modal-Menu-DeleteNote-Form">
<input type="hidden" name="MM_insert" value="Modal-Menu-DeleteNote-Form">
<input type="hidden" name="MM_delete" value="Modal-Menu-DeleteNote-Form">
<input type="hiddenx" name="MM_recordId" value="<%= RS_Notes.Fields.Item("Note_ID").Value %>">
<input type="submit" value="Delete"/>
</form>
</td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
RS_Notes.MoveNext()
Wend
%>
JQUERY 部分:
//delete note
$("a#Table-Content-DeleteNotes-Link").click(function(){
$("form[id=Modal-Menu-DeleteNote-Form]").dialog("open");
})
$("form[id*=Modal-Menu-DeleteNote-Form]").dialog(
{
autoOpen:false,
modal:true,
width:800,
height:500,
title:"Delete Note",
show:{effect:"fade",duration:300},
hide:{effect:"fade",duration:300},
buttons:{
/* Delete:function(){
$("form[id=Modal-Menu-DeleteNote-Form]").submit();
},
Cancel:function(){
$("form[id=Modal-Menu-DeleteNote-Form]").dialog("close");
}*/
}
});
就目前而言,如果我只需点击表单标签中创建的删除按钮,一切都会正常,它能够删除我想要的正确记录,我只是想添加一个模式菜单来确认删除一个特定的记录,所有注释菜单不会同时出现,如下图所示。谢谢。
最佳答案
部分问题是您的所有 FORM 都具有相同的 ID,因此当单击删除链接时,它会打开具有相同 ID 的所有对象。
最好通过更改此行来为每个人提供唯一的 ID...
<form ACTION="<%=MM_noteDeleteAction%>" METHOD="POST" name="Modal-Menu-DeleteNote-Form" id="Modal-Menu-DeleteNote-Form">
...到...
<form ACTION="<%=MM_noteDeleteAction%>" METHOD="POST" name="Modal-Menu-DeleteNote-Form" id="Modal-Menu-DeleteNote-Form_<%= RS_Notes.Fields.Item("Note_ID").Value %>">
在本例中,我更改了 ID 以包含注释 ID,但您可以使用索引变量来代替,只是使其唯一。
然后更改您的链接和 JavaScript,通过 ID 更改对表单的任何引用,以获取与单击的删除链接相关的表单。
更改您的链接...
<a href="#" id="Table-Content-DeleteNotes-Link">Delete</a>
...到...
<a href="#" id="Table-Content-DeleteNotes-Link" rel="<%= RS_Notes.Fields.Item("Note_ID").Value %>">Delete</a>
(这样我们就可以方便的在点击事件中查找ID了)
所有引用文献来自...
$("form[id=Modal-Menu-DeleteNote-Form]")
...到...
$("form[id=Modal-Menu-DeleteNote-Form_" + $(this).attr("rel") + "]")
当然,最好将其放入变量中。
请注意,有多种方法可以完成上述操作,我建议的方法不一定是最有效的。
关于javascript - 从经典 .ASP 重复区域调用正确的、单独的模态菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30811834/