首页 > 解决方案 > MVC5 Uncaught ReferenceError:addNewRowTract 未在 HTMLButtonElement.onclick 中定义

问题描述

该项目是弹出模式的一部分,我在将函数 addNewRowTract(btnID, texboxID) 连接到我的<button.... onclick="addNewRowTract('#addTract','#TractId')">. 我将我的 jQuery 包含在同一个 .cshtml 视图页面 @section scripts {... 并且元素 onclick 没有连接到 js。任何方向都会非常有帮助。

这是功能:

function addNewRowTract(btnID, texboxID) {

    var myurl = $(btnID).data('url');
    var id = $(texboxID).val();
    var taskID = $(btnID).attr('data-taskID');
    var mydata = {
        'Id': id,
        'TaskID': taskID
    };

    var tableID = $(btnID).data('table');

    $.ajax({
        url: myurl,
        data: mydata,
        type: "post",
        cache: false,
        success: function(result) {
            $(tableID).find('tbody:first').prepend(result);
        }
    });

}

//here's the button

<button type="button" class="btn btn-success" data-dismiss="modal" id="addTract" data-url='@Url.Action("NewTaskTract", "Tasks")' data-taskID='@Model.TaskID' data-table="#taskTractTable" onclick="addNewRowTract('#addTract','#TractId')" />

标签: javascriptjqueryasp.net-mvcasp.net-mvc-5

解决方案


为任何类型的对象添加事件侦听器的正确方法,如下面的代码

HTML

<button type="button" class="btn btn-success" data-dismiss="modal" id="addTract" data-url='@Url.Action("NewTaskTract", "Tasks")' data-taskID='@Model.TaskID' data-table="#taskTractTable" data-textboxid="#TractId">

Javascript

    $('body').on('click','#addTract',function(){
      var btnId=$(this).attr('id');
      //and your rest of code
    });

推荐阅读