Javascript “如何解决此错误”;不推荐使用getPreventDefault()。请改用defaultPrevented。”;
我尝试使用json数据从SQLServer数据库中获取特定UALR用户的数据。但它总是在控制台中显示以下错误: “不推荐使用getPreventDefault()。请使用defaultPrevented 相反。” 未从数据库中检索和值 我的代码是: 客户端:Javascript “如何解决此错误”;不推荐使用getPreventDefault()。请改用defaultPrevented。”;,javascript,jquery,json,vb.net,sql-server-2005-express,Javascript,Jquery,Json,Vb.net,Sql Server 2005 Express,我尝试使用json数据从SQLServer数据库中获取特定UALR用户的数据。但它总是在控制台中显示以下错误: “不推荐使用getPreventDefault()。请使用defaultPrevented 相反。” 未从数据库中检索和值 我的代码是: 客户端: <body> <form id="form1" runat="server"> <table border="0" > <tr> <td>
<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>   </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>
 
$(函数(){
$(“[id*=btnShow]”。绑定(“单击”,函数(){
var user={};
user.Name=$(“[id*=txtName]”).val();
user.grd=$(“[id*=gvUsers]”)val();
$.ajax({
类型:“POST”,
url:“View.aspx/ViewUser”,
数据:“{user:'+JSON.stringify(user)+'}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(响应){
//警报(“用户已成功添加”);
window.location.reload();
}
});
返回false;
});
});
服务器端:
<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
_
_
公共共享子视图用户(用户作为用户)
将grd变暗为GridView
grd=user.grd
'将用户设置为GridView
Dim constr As String=ConfigurationManager.ConnectionString(“constr”).ConnectionString
使用con作为新的SqlConnection(cont)
使用cmd作为新的SqlCommand(“从Username=@Name的用户中选择*)
将sda用作新的SqlDataAdapter()
Dim dt作为新数据表()
cmd.CommandType=CommandType.Text
cmd.Parameters.AddWithValue(“@Name”,user.Name)
cmd.Connection=con
sda.SelectCommand=cmd
sda.填充(dt)
“grd.Visible=True
grd.DataSource=dt
grd.DataBind()
终端使用
终端使用
终端使用
端接头
末级
公共类用户
作为字符串的公共属性名()
得到
返回\u名称
结束
设置(值为字符串)
_名称=值
端集
端属性
Private\u名称作为字符串
公共属性grd()作为GridView
得到
返回值
结束
设置(值为GridView)
_grd=值
端集
端属性
作为GridView的专用grd
末级
但是我的数据没有显示在网页上。提前感谢您这只是因为您使用的jQuery版本以稍微草率的方式迎合了较旧的浏览器。您正在使用的版本中包含以下代码:
this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()
如您所见,它确实尝试使用defaultPrevented
属性,但如果默认设置未被阻止,则继续调用getpreventeddefault
。因此,即使在具有该属性的浏览器上,如果没有阻止默认值,它也会调用旧函数(如果存在)
较新版本的jQuery(2.x,3.x)不再使用
getPreventDefault
。如果要消除此警告,请使用更为最新的jQuery,或者对正在使用的jQuery进行破解,以便它检查属性的存在,而不仅仅是检查其值。此错误与您显示的代码无关。您的页面中是否包含任何其他库?请尝试defaultPrevented=true
@RoryMcCrossan:这是他们正在使用的jQuery版本。@T.J.Crowder啊,是的-很好,Catch我更改了我的jQuery版本,但仍然出现相同的问题。@MDP:您将其更改为什么?我检查了最近的2.x和3.x,它们都不包含对getPreventDefault
的调用。我更新了我的JQuery版本,但仍然无法运行,并显示错误为304未修改。@MDP:再次说明:您将其更改为什么?我将JQuery文件更改为3.x版本