参数列表后缺少未捕获的语法错误)

Uncaught syntaxerror missing ) after argument list

本文关键字:语法 错误 列表 参数      更新时间:2023-09-26

我得到语法错误:

         Uncaught Syntax Error: missing ) after argument list

表中的数据显示良好。当我点击表中的"删除"按钮时,会出现错误。但我似乎找不到代码有任何问题。

它的工作原理是,当我点击删除按钮时,它会打开一个模型窗口,询问我是否确定要删除所选条目,一旦我点击是,它应该删除该条目。但是,当我点击删除按钮时,我会弹出窗口,但当我点击窗口上的"是"时,什么都没有发生。这就像代码被卡住了。


在主JSP中:

       <div id="subjectArea">
       </div>
       <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content my-popup">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span>
                    <span class="sr-only">Close</span></button>
                <h4 class="modal-title" id="myModalLabel">Delete</h4>
            </div>
            <div class="modal-body">  Are You Sure to Delete? </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-success" id="delete_no" onclick="">Yes</button>  <button type="button" class="btn btn-danger" data-dismiss="modal">No</button>
            </div>
        </div>
    </div>
</div>
<script>
    function changeDeleteId(x) {
        $("#delete_no").attr("onclick","deleteSubjects("+x+")");
    }

在子JSP中:

         <table width="100%" id="example" class="table table-bordered" cellspacing="0" style="font-size: 14px ; margin-left: 10px; text-align: center; border: 1px solid black;">

        <%--Table Headers--%>
     <th style="text-align: center">Sr.</th>
     <th style="text-align: center">Code</th>
     <th style="text-align: center">Title</th>
     <th style="text-align: center">Status</th>
     <th style="text-align: center">Actions</th>
      </tr>
     <c:forEach items="${subjects}" var="subject" varStatus="counter">
    <tr style="align-items: center">
        <td style="font-size: 14px ; border: 1px solid black; background-color: white">${counter.count}</td>
        <td style="font-size: 14px ; border: 1px solid black; background-color: white">${subject.subjectCode}</td>
        <td style="font-size: 14px ; border: 1px solid black; background-color: white">${subject.subjectName}</td>
        <td style="font-size: 14px ; border: 1px solid black; background-color: white">${subject.status}</td>
        <td style="font-size: 14px ; border: 1px solid black; background-color: white; text-align: center; margin-left: 20px">
                <%--<a style="color: green; font-weight: bold" href="${pageContext.request.contextPath}/subject/edit/${subject.subjectId}">Edit</a> &nbsp;|&nbsp;--%>
            <a style="text-align: center" href="${pageContext.request.contextPath}/subject/edit/${subject.subjectId}" title="Edit"><i class="fa fa-pencil-square-o edit"></i></a> &nbsp; &nbsp;
            <a data-toggle="modal" data-target="#myModal" style="color: red; font-weight: bold" onclick="changeDeleteId(${subject.subjectId})"><i class="fa fa-trash-o delet"></i></a>
        </td>
    </tr>
</c:forEach>

JavaScript文件:

             function deleteSubjects(x) {
var url = 'delete/' + x;
$.get(url, function(content) {
    $("#subjectArea").html(content);
}).fail(function() {
    alert("Something Went Wrong, Try Again!")
});
}

粘贴的代码有两个问题:

${subject.subjectId}是一个字符串,必须将其作为字符串传递给changeDeleteId函数,即用引号括起来changeDeleteId('${subject.subjectId}')

$("#delete_no").attr("onclick","deleteSubjects("+x+")");不是将函数绑定到单击事件的正确方式。请改用jQuery on()。请参阅其API文档,并参阅"将数据传递给处理程序"下给出的示例。

最后,您的代码将如下所示:

function changeDeleteId(subjectId) {
   $("#delete_no").on("click", deleteSubjects, {subject: subjectId});
}
function deleteSubjects(event) {
   var url = 'delete/' + event.data.subject;
}