Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript internet explorer中的jQuery或jqGrid错误_Javascript_Jquery_Internet Explorer_Jqgrid - Fatal编程技术网

Javascript internet explorer中的jQuery或jqGrid错误

Javascript internet explorer中的jQuery或jqGrid错误,javascript,jquery,internet-explorer,jqgrid,Javascript,Jquery,Internet Explorer,Jqgrid,看看下面的jqGrid示例 (用户名:PublicAccess,密码:12345678) 您会注意到,默认情况下,选项按钮处于禁用状态,并在选定行上启用,单击: beforeSelectRow: function (ID, event) { $("#" + _LastSelectedRow + "_SaveButton").button("disable"); $("#" + _LastSelectedRow + "_DeleteButton").button("disable

看看下面的jqGrid示例

(用户名:PublicAccess,密码:12345678)

您会注意到,默认情况下,选项按钮处于禁用状态,并在选定行上启用,单击:

beforeSelectRow: function (ID, event) {
    $("#" + _LastSelectedRow + "_SaveButton").button("disable");
    $("#" + _LastSelectedRow + "_DeleteButton").button("disable");
    $("#" + ID + "_SaveButton").button("enable").click(function (event) {
        event.stopPropagation(); event.preventDefault();
    });
    $("#" + ID + "_DeleteButton").button("enable").click(function (event) {
        event.stopPropagation(); event.preventDefault();
    });
    _LastSelectedRow = ID;
} 
您还将注意到,在最初声明的按钮wireup中,它们被禁用,wiredup用于防止回发:

$(".DeleteButton").button({ icons: { primary: 'ui-icon-closethick' }, text: false,
     disabled: true }).css({ width: "45px" }).click(function (event) {
         event.stopPropagation(); event.preventDefault();
});
$(".SaveButton").button({ icons: { primary: 'ui-icon-check' }, text: false,
     disabled: true }).css({ width: "45px" }).click(function (event) {
         event.stopPropagation(); event.preventDefault();
}); 
firefox和chrome中的行为与预期完全相同,但当点击按钮列中未选中的行时,good old IE会发出回发。单击其他列(如“说明”)时,该行为与预期一样

我不明白为什么会发生这种情况,我永远欠任何一个能对这种情况有所了解的人的债


PS:我知道我在两个不同的点上连接了两次按钮的事件处理程序,这只是为了解决问题的最后一次尝试(显然不起作用)

您的主要问题是没有指定您创建的按钮的
类型
属性。默认值在不同的浏览器中是不同的。如果类型为
submit
,则会出现其他问题。禁用提交按钮时存在一些已知问题。我不确定你是否真的需要提交。可能只需自定义
单击事件处理程序就足够了。如果确实需要提交,则可以使用按钮和
type=“button”
,但可以调用表单提交

$("#form1").submit();
的内部,单击事件句柄。您可以看到的代码的修改版本。我调用
$(“#form1”).submit()
仅在
中单击“保存”按钮的事件句柄,而不是“删除”按钮。表单提交的另一个缺点是重新加载页面并删除对网格的选择

此外,在中,我修复了一些小但重要的错误,并对代码进行了一些小的改进:

  • 由于使用了Additional to other,原始代码两次加载了jqGrid的一些Java脚本
  • 原始代码使用了
    ui.multiselect.js
    jquery.searchFilter.js
    ,需要加载
    jquery.searchFilter.css
    ui.multiselect.css
  • 您的HTML页面应该在页面标题中包含
  • 您可以使用jqGrid的参数而不是使用
    addRowData
    方法更有效、更方便地加载jqGrid的数据
  • 您可以对
    id
    列使用
    key:true
    选项,而不是使用
    localReader:{id:'id'}
    。最好是读取,它可以处理所有
    datatype
    值,而不仅仅是本地数据
  • 在SelectRow之前的
    内部,如果未解除上一个处理程序的绑定,则不应使用
    单击
    绑定。如果在绑定函数的当前代码中插入
    alert(“in click”)
    ,您将看到在每次选择同一行后,
    alert
    函数将被调用多次(两次、三次等等)。因此,要修复代码,在选择行之前,应删除
    中的
    绑定。您已经绑定了一个
    事件句柄,开始时单击一次
    事件句柄(请参见
    $(“.DeleteButton”)。按钮(…)。单击
    gridComplete
    中的
  • 正如我上面所描述的,您应该在HTML代码片段中添加
    type=\“button\”
    ,并将其放置在
    选项
    列中
  • 因为您只设置了一个单元格值,所以最好使用
    setCell
    方法而不是
    setRowData
    方法
  • 您应该增加
    选项
    列的宽度,以便在Google Chrome浏览器中看到一行中插入的按钮。在我的修改版本中,我使用了
    宽度:98
    而不是原来的
    宽度:96
  • 建议对HTML代码进行一些小改动,使其成为有效的XHTML1.0过渡代码或XHTML1.0严格代码。(参见修改页面中的注释)

  • 如果说你是一个gemoleg,那就太轻描淡写了。谢谢你!