如何解决此错误,“不赞成使用getPreventDefault().请改用defaultPrevented. [英] how to resolve this error "Use of getPreventDefault() is deprecated. Use defaultPrevented instead."

查看:78
本文介绍了如何解决此错误,“不赞成使用getPreventDefault().请改用defaultPrevented.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用json数据从sql服务器数据库中为特定用户获取数据.但是它在控制台中始终显示错误:

I tried to fetch datas for a particualr user from sql sever database using json data. But its always showing error in the console as:

不赞成使用getPreventDefault().请使用defaultPrevented 代替."

"Use of getPreventDefault() is deprecated. Use defaultPrevented instead."

并且没有从数据库中检索值.

And values are not retrieving from the database.

我的代码是:

客户端:

<body>
<form id="form1" runat="server">
<table border="0" >
    <tr>
        <td>
            <asp:Label ID= "lblName" runat="server" Text="Name" ></asp:Label>
        </td>
        <td>
            <asp:TextBox ID="txtName" runat="server" Text="" /><br />
        </td>
    </tr>
    <tr>
            <td> &nbsp </td>
    </tr>
    <tr>
        <td colspan ="2" >
           <asp:Button ID="btnShow" Text="Show" runat="server" />
        </td>
    </tr>
</table>
    <hr /><asp:GridView ID="gvUsers" runat="server" AutoGenerateColumns="false" HeaderStyle-BackColor="#3AC0F2"
    HeaderStyle-ForeColor="White" RowStyle-BackColor="#A1DCF2">
    <Columns>
        <asp:BoundField DataField="Username" HeaderText="Username" />
        <asp:BoundField DataField="Password" HeaderText="Password" />
    </Columns>
</asp:GridView> 
</form>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="http://cdn.jsdelivr.net/json2/0.1/json2.js"></script>
<script type="text/javascript">
    $(function () {
        $("[id*=btnShow]").bind("click", function () {
            var user = {};
            user.Name = $("[id*=txtName]").val();
            user.grd = $("[id*=gvUsers]").val();
            $.ajax({
                type: "POST",
                url: "View.aspx/ViewUser",
                data: '{user: ' + JSON.stringify(user) + '}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    //alert("User has been added successfully.");
                    window.location.reload();
                }
            });
            return false;
        });
    });
</script>
</body>

服务器端:

<WebMethod()> _
<ScriptMethod()> _
Public Shared Sub ViewUser(user As Users)
    Dim grd As GridView
    grd = user.grd
    'Dim gvUsers As GridView
    Dim constr As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
    Using con As New SqlConnection(constr)
        Using cmd As New SqlCommand("SELECT * FROM Users Where Username = @Name")
            Using sda As New SqlDataAdapter()
                Dim dt As New DataTable()
                cmd.CommandType = CommandType.Text
                cmd.Parameters.AddWithValue("@Name", user.Name)
                cmd.Connection = con
                sda.SelectCommand = cmd
                sda.Fill(dt)
                'grd.Visible = True
                grd.DataSource = dt
                grd.DataBind()
            End Using
        End Using
    End Using
End Sub
End Class
Public Class Users
Public Property Name() As String
    Get
        Return _Name
    End Get
    Set(value As String)
        _Name = value
    End Set
End Property
Private _Name As String
Public Property grd() As GridView
    Get
        Return _grd
    End Get
    Set(value As GridView)
        _grd = value
    End Set
End Property
Private _grd As GridView
End Class

但是我的数据没有显示在网页中.预先谢谢你

But my datas are not displaying in the webpage. Thank you in advance

推荐答案

这仅仅是因为您使用的jQuery版本以稍微草率的方式迎合了较旧的浏览器.您使用的版本中包含以下代码:

This is just because you're using a version of jQuery that caters to older browsers in a slightly-sloppy fashion. The version you're using has this code in it:

this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()

如您所见,

它确实尝试使用defaultPrevented属性,但是如果没有阻止默认设置,它将继续调用getPreventDefault.因此,即使在具有该属性的浏览器上,如果未阻止默认设置,它也会调用旧函数(如果存在).

As you can see, it does try to use the defaultPrevented property, but then goes on to call getPreventDefault if the default hasn't been prevented. So even on browsers with the property, if the default hasn't been prevented, it will call the old function if present.

较新版本的jQuery(2.x,3.x)不再使用getPreventDefault.如果您想摆脱警告,请使用更新的jQuery或修改您正在使用的jQuery,以便它检查属性的存在,而不仅仅是检查其值.

Newer versions of jQuery (2.x, 3.x) don't use getPreventDefault anymore. If you want to get rid of the warning, either use a more up-to-date jQuery or hack the one you're using so that it checks for the existence of the property rather than just checking its value.

这篇关于如何解决此错误,“不赞成使用getPreventDefault().请改用defaultPrevented.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆