【问题标题】:Uncaught syntaxerror missing ) after argument list参数列表后未捕获的语法错误)
【发布时间】:2016-04-29 22:56:16
【问题描述】:

我收到语法错误:

         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 是数字还是字符串?
  • @RickHitchcock 这是一个字符串
  • 这可能是问题所在。试试onclick="changeDeleteId('${subject.subjectId}')"
  • stackoverflow.com/questions/4506219/… 对这篇文章接受的答案的评论谈到像你一样传递参数
  • 我按照那里的建议编辑了代码 $("#delete_no").attr("onclick","deleteSubjects('"+x+"')");但仍然遇到同样的问题。

标签: javascript jquery ajax jsp


【解决方案1】:

您粘贴的代码有 2 个问题:

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

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

最后你的代码将如下所示:

function changeDeleteId(subjectId) {
   $("#delete_no").on("click", deleteSubjects, {subject: subjectId});
}

function deleteSubjects(event) {
   var url = 'delete/' + event.data.subject;
}

【讨论】:

  • 它现在将我带到模型弹出窗口,但是当我点击是(确认删除)时,我收到此错误(屏幕截图 - screencast.com/t/uX8AAcOzer)$(“#delete_no”) .on("点击", deleteSubjects, {subject: subjectId});这似乎不起作用
猜你喜欢
  • 1970-01-01
  • 2019-02-03
  • 1970-01-01
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-28
相关资源
最近更新 更多