【发布时间】:2026-01-12 21:00:01
【问题描述】:
我正在尝试在 gridComplete 事件期间创建的按钮的 onclick 事件中调用一个函数。加载正常...这是第一行中的按钮呈现的 html 的样子
<input type="button" onclick="deleteRow(9197113);" value="Delete" style="height: 22px; width: 70px;">
但是当我点击按钮时......该函数没有被调用并且萤火虫说......。
deleteRow 未定义
我如何调用函数,而不是使用内联 javascript,,,(顺便说一句,它确实有效,但我想调用该函数以提高可读性和可维护性)。我已经包含了有效的内联 javascript...它在下面的 sn-p 中被注释掉了...
下面是 jqGrid 设置的网格完成部分。
jQuery("#list").jqGrid({
........................
gridComplete: function() {
var ids = jQuery("#list").jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++) {
var cl = ids[i];
de = "<input style='height:22px;width:70px;' type='button' value='Delete' onclick='deleteRow('" + cl + "' );' />";
//de = "<input style='height:22px;width:70px;' type='button' value='Delete' onclick=\"jQuery('#list').jqGrid('delGridRow', '" + cl + "', {msg: 'Delete this entry?'});\" />";
jQuery("#list").jqGrid('setRowData', ids[i], { Delete: de });
}
}
........................
});
这里是 deleteRow() 函数……
function deleteRow() {
alert("hit delete button");
// jQuery("#grid_id").jqGrid('delGridRow', row_id_s,options );
}
【问题讨论】:
-
deleteRow在哪里定义?听起来您没有在正确的范围内调用它。 -
它在同一个 javascript 文件中...就在 jqGrid 设置内容的下方
-
当你在下面说的时候,它是你准备好的函数的直接孩子吗?它只是
<script>块的直接子代吗?它在 JavaScript 对象中吗? -
它就在 jqGrid 设置内容的正下方...jqGrid 设置内容结束,有一个空行,下一行是 deleteRow 函数...