javascript - 未捕获的类型错误 - 无法读取 jQgrid 中未定义的属性 'msie'

标签 javascript jquery jqgrid jqgrid-asp.net

很抱歉重复了这个问题,但以前对此类问题的回答并没有给我解决方案。

我已完成以下操作: - 使用jQGrid 3.5.3

包含的js文件有:

<script src="Script/Jquery.js" type="text/javascript"></script>

    <script src="Script/jquery.jqGrid.min.js" type="text/javascript"></script>

    <script src="Script/jquery-1.3.2.min.js" type="text/javascript"></script>

    <script src="Script/jquery-1.9.1.js" type="text/javascript"></script>

    <script src="Script/jquery-migrate-1.2.1.min.js" type="text/javascript"></script>

    <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js" type="text/javascript"></script>

我在 jquery.jqGrid.min.js 中遇到上述错误。

HTML 代码

<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <div style="align: center">
        <fieldset style="">
            <legend style="text-align: Left; font-size: medium;"><strong>User Details </strong>
            </legend>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" RenderMode="Inline">
                <ContentTemplate>
                    <table style="width: auto; max-width: 60%">
                        <tr>
                            <td style="text-align: right">
                                <strong style="font-size: small">Name* :</strong>
                            </td>
                            <td style="text-align: left">
                                <asp:TextBox runat="server" ID="txtName" placeholder="Enter Name" TabIndex="1"></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align: right">
                                <strong style="font-size: small">DOB* :</strong>
                            </td>
                            <td style="text-align: left">
                                <input type="text" id="txtDOB" tabindex="2" />
                                <%--<asp:TextBox runat="server" ID="datepicker" placeholder="Enter DOB"></asp:TextBox>--%>
                            </td>
                            <td style="text-align: right">
                                <strong style="font-size: small">Age :</strong>
                            </td>
                            <td style="text-align: left">
                                <asp:TextBox runat="server" ID="txtAge" Enabled="false"></asp:TextBox>
                            </td>
                        </tr>
                        <tr>
                            <td style="text-align: right">
                                <strong style="font-size: small">Group* :</strong>
                            </td>
                            <td style="text-align: left">
                                <asp:DropDownList runat="server" ID="ddlGroup" TabIndex="3">
                                    <asp:ListItem Selected="True" Value="0">Select Value</asp:ListItem>
                                    <asp:ListItem Value="1">Gold</asp:ListItem>
                                    <asp:ListItem Value="2">Silver</asp:ListItem>
                                    <asp:ListItem Value="3">Bronze</asp:ListItem>
                                </asp:DropDownList>
                            </td>
                            <td style="text-align: right">
                                <asp:CheckBox runat="server" ID="chkActive" Text="Active" TabIndex="4" />
                            </td>
                        </tr>
                        <tr>
                            <td colspan="100%" align="center">
                                <asp:Button runat="server" ID="btnAdd" Text="ADD" OnClientClick="fnValidate();" TabIndex="5" />
                            </td>
                        </tr>
                    </table>
                </ContentTemplate>
                <Triggers>
                    <asp:PostBackTrigger ControlID="btnAdd" />
                </Triggers>
            </asp:UpdatePanel>
        </fieldset>
        <div align="center">
            <table id="tblData">
            </table>
        </div>
    </div>
    </form>

我的脚本代码是:

var username = new Array();
        var len = username.length;
        $(function() {
            $("#txtDOB").datepicker();
        });

        function fnValidate() {
            if ($("#txtName").val() == "") {
                alert("Please Enter UserName");
                $("#txtName").focus();
                return false;
            }
            else {
                var alphaValidate = /^[a-zA-Z ]*$/;
                if (!alphaValidate.test($("#txtName").val())) {
                    alert("Please Enter Only Text in User Name");
                    $("#txtName").val() = "";
                    $("#txtName").focus();
                    return false;
                }
            }
            if (jQuery.inArray($("#txtName").val().toUpperCase(), username) == 0) {
                alert("Please Enter Unique UserName.");
                return false;
            }
            if ($("#txtDOB").val() == "") {
                alert("Please Enter Birth Date.");
                return false;
            }
            //            if ($("#txtDOB").val().match(/(\d+)(-|\/)(\d+)(?:-|\/)(?:(\d+)\s+(\d+):(\d+)(?::(\d+))?(?:\.(\d+))?)?/)) {
            //                alert("Please Enter Only Numeric Value In DOB! (Allowed input:0-9)")
            //                return false;
            //            }
            if ($("#txtAge").val().length > 2) {
                alert("Age Should be Less than 100.");
                return false;
            }
            if ($("#ddlGroup option:selected").val() == 0) {
                alert("Please Select Group!");
                $("#ddlGroup").focus();
                return false;
            }
            username[len] = $("#txtName").val().toUpperCase();
            fnAddDetails();
            return true;
        }
        function fnAddDetails() {
            debugger;
            var content = {};
            content.name = $("#txtName").val();
            content.dob = $("#txtDOB").val();
            content.group = $("#ddlGroup option:selected").text();
            content.active = "No";
            if ($("#chkActive").attr("checked")) {
                content.active = "Yes";
            }
            var jsonText = JSON.stringify(content);
            debugger;
            $.ajax({
                type: "POST",
                url: "Test_sspl142_jQuery_JavaScript.aspx/GetDate",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                data: jsonText,
                success: function(data) {
                    debugger;
                    var dataget = $.parseJSON(data.d);
                    jQuery("#tblData").jqGrid({
                        datatype: 'json',
                        colNames: ['name', 'group', 'active', 'age'],
                        colModel: [
                            { name: 'name', width: 60 },
                            { name: 'group', width: 90 },
                            { name: 'active', width: 100 },
                            { name: 'age', width: 80, align: "right" },
                        ],
                        rowNum: 10,
                        rowList: [10, 20, 30],
                        pager: '#pager3',
                        viewrecords: true,
                        loadonce: true
                    });
                },
                error: function(ex) {
                    alert("Error Occured while saving data in grid...");
                    console.log(ex);
                }
            });
        }

最佳答案

 jQuery.browser = {};
   (function () {
       jQuery.browser.msie = false;
       jQuery.browser.version = 0;
       if (navigator.userAgent.match(/MSIE ([0-9]+)\./)) {
           jQuery.browser.msie = true;
           jQuery.browser.version = RegExp.$1;
       }
   })();

不需要 jquery migrate 插件,只需将此代码放在 jquery.grid.js 上方的脚本标签中即可

关于javascript - 未捕获的类型错误 - 无法读取 jQgrid 中未定义的属性 'msie',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21260548/

相关文章:

jquery - 如何仅克隆多个嵌套元素之一

javascript - 像 javascript 中的代码一样的小型 FSM

jquery - 如何重新加载 JQuery 网格保持滚动位置和折叠元素打开

jquery - 如何解决JQgrid中的寻呼机显示问题

javascript - Ionic V2 和 Cordova 插件 - 未捕获的类型错误 : Cannot set property 'test' of null

javascript - 如何为 Dynamics CRM 调试 jScript?

asp.net-mvc-3 - Ajax.BeginForm 可以重定向到新页面并传递路由值

javascript - 将多个 javascript var 合并到一个函数中

javascript - 如何根据数字显示评分

jquery - 是否可以从jstree拖放到jqgrid?