【发布时间】:2020-05-29 10:18:51
【问题描述】:
我正在使用 ajax jquery 搜索功能。
当我在文本框中搜索记录然后得到记录但是当我搜索虚假记录时得到虚假记录?这就是问题
表:
员工.aspx
<tr>
<td>
Search Record: <asp:TextBox ID="txtsearch" runat="server"></asp:TextBox>
<input id="btnsearch" type="button" value="Search" onclick="searchrecord()" />
</td>
</tr>
</table>
</div>
<div class="row">
<div>
<table id="tbl" border="1">
<thead>
<tr>
<th>StudentName</th>
<th>StudentAddress</th><br /><br />
<th>Edit</th>
</tr>
</thead>
</table>
</div>
</div>
function searchrecord(studname) {
jQuery.ajax({
url: "WebForm1.aspx/search",
type: 'post',
contentType: 'application/json;charset=utf-8',
datatype: 'json',
data: "{ studname:'" + $("#txtsearch").val() + "' }",
success: function (data) {
debugger
if (data.d == $("#txtsearch").val()) {
debugger
txt = "<tr><td>" + data.d + "</td></tr>";
$("#tbl").append(txt);
alert('you enter right record');
}
else if (data.d != $("#txtsearch").val()) {
alert('you enter wrong record');
}
},
error: function () {
alert('search Error'); //now whatever i search then this run
},
});
}
员工.aspx
[WebMethod]
public static string search(string studname,bool flg)
{
string data = "";
SqlConnection con = new SqlConnection(cn);
SqlCommand cmd = new SqlCommand("SELECT studname FROM tblstud WHERE studname LIKE @studname and active=@flagTrueOrFalse", con);
con.Open();
cmd.Parameters.AddWithValue("@studname", "%" + studname + "%");
cmd.Parameters.AddWithValue("@flag", SqlDbType.Bit).Value = flg;
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
studname = reader[0].ToString();
}
}
else
{
Console.WriteLine("No rows found.");
}
reader.Close();
data = studname;
return data;
}
if-else条件ajax逻辑如何解决?
主要获取数据列表:
function GetData() {
$.ajax({
url: 'Emploee.aspx/GetData',
type: 'post',
contentType: 'application/json;charset=utf-8',
datatype: 'json',
success: function (data) {
data = JSON.parse(data.d);
$.each(data, function (index, element) {
$("#tbl").append('<td>' + element.studname + '</td>');
$("#tbl").append('<td>' + element.studaddress + '</td>');
$("#tbl").append('<td><input type="button" id="btnupdate" value="Update" onclick="Update(' + element.studid + ', \'' + element.studname + '\' ,\'' + element.studaddress + '\')" /></td>');
});
},
error: function (error) {
alert('Not Get Data')
},
});
}
简单,我想在用户输入真实记录时添加 if-else 条件,然后添加记录,用户获取虚假记录然后获取警报消息框?
我想在上面的 ajax 中设置以下条件:
if(textbox value match then going inside)
{
txt = "<tr><td>" + data.d + "</td></tr>";
$("#tbl").append(txt);
}
else if(textbox value not match then going inside)
{alert("please proper record enter");}
控制台日志:
预览:
{Message: "Invalid web service call, missing value for parameter: 'flg'.",…}
Message: "Invalid web service call, missing value for parameter: 'flg'."
StackTrace: " at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)
↵ at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)
↵ at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)
↵ at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)"
ExceptionType: "System.InvalidOperationException"
回应
{"Message":"Invalid web service call, missing value for parameter: \u0027flg\u0027.","StackTrace":" at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters)\r\n at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters)\r\n at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams)\r\n at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.InvalidOperationException"}
【问题讨论】:
-
注释掉 $('#btnSearch').onclick 及其结束部分 });您已经从按钮调用函数。这会将多个匿名函数附加到搜索按钮。
-
@bestinamir 谢谢,但是当我添加这一行时
if (data.indexOf( $("#txtsearch").val()) > 1)给出错误 Uncaught TypeError: data.indexOf is not a function -
@bestinamir 如何解决我需要添加适当逻辑的问题?我上周遇到了这个问题。
-
设置断点以查看 Ajax 返回的内容,如下所示,错误表示数据不是字符串类型。 m.youtube.com/watch?v=CoESC2XGZLg
-
问题是无论我搜索什么都会得到结果如果我评论这一行``` if (data.indexOf( $("#txtsearch").val()) > 1) ```然后显示我的控制台日志:
headers : { studname:'suraj' } and preview {d: "suraj"} d: "suraj" and response {"d":"suraj"}简单,我想在用户输入真实记录时添加一个 if else 条件,然后添加记录,用户得到错误记录,然后得到警报消息框
标签: javascript jquery html asp.net ajax