Javascript 如何检查文本框值用户使用ajax Jquery在文本框中输入值是否正确?
我正在使用ajax jquery搜索功能 当我在文本框中搜索记录,然后得到记录,但当我搜索虚假记录,然后得到虚假记录?这就是问题所在 表: 雇员Javascript 如何检查文本框值用户使用ajax Jquery在文本框中输入值是否正确?,javascript,jquery,html,asp.net,ajax,Javascript,Jquery,Html,Asp.net,Ajax,我正在使用ajax jquery搜索功能 当我在文本框中搜索记录,然后得到记录,但当我搜索虚假记录,然后得到虚假记录?这就是问题所在 表: 雇员 <tr> <td> Search Record: <asp:TextBox ID="txtsearch" runat="server"></asp:TextBox>
<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
},
});
}
[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')
},
});
}
响应
{"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"}
条件(data==“#txtsearch”)很可能永远不会满足。
我猜你想写信
if (data.indexOf( $("#txtsearch").val()) > 1)
比较数据。
无论如何,这不是很有效,我希望正确地使用成功和错误回调来实现您想要的结果。rahul我认为您的ajax请求没有问题。您可以通过success函数中的console.log(data)检查这一点。 但正如您的代码所解释的,您将结果直接附加到 $(“#tbl”)元素,表示您正在追加而不是删除以前的结果。因此,我建议您在表链接的末尾创建另一个元素,我相信这会有所帮助
//end of table tag then add this element
<span id="result"></span>
//changes in success
success: function (data) {
txt = "" + data.d + "";
$("#result").text(txt);
//$("#tbl").append(txt);
},
//表结束标记,然后添加此元素
//成功的变化
成功:功能(数据){
txt=“”+data.d+”;
$(“#结果”).text(txt);
//$(“#tbl”).append(txt);
},
当您尝试搜索学生时,我想做的第一件事是在添加响应数据之前删除Html。因此,如果您多次更新内容,将避免混淆
另外,我注意到的一点是,您在SQL查询中使用了2个参数,但没有传递@flagTrueOrFalse参数。所以要做得恰当。如果仍然面临问题,请向我们提供更多详细信息,以便我们能够帮助您。注释掉行$(“#btnSearch”).onclick及其结束部分};您已经从按钮调用了函数。这会将多个匿名函数附加到搜索按钮。@bestinamir谢谢,但当我添加此行时,
if(data.indexOf($(“#txtsearch”).val())>1)
给出一个未捕获的错误类型错误:data.indexOf不是function@bestinamir如何解决这个需要添加适当逻辑的问题?上周我遇到了这个问题。设置断点以查看Ajax返回的内容,如图所示,错误意味着数据不是字符串类型。问题是,无论我搜索什么,如果我注释这一行,``If(data.indexOf($(“#txtsearch”).val())>1``然后显示我的控制台日志:headers:{studname:'suraj}并预览{d:'suraj}d:'suraj}和响应{d:“suraj}
simple,我想在用户输入true记录时添加if-else条件,然后添加记录,用户获取false记录,然后获取警报消息框if(data.indexOf($(“#txtsearch”).val())>1){
该行给出错误:未捕获类型错误:data.indexOf不是函数如何解决此问题以及如何实现此搜索功能?帮助谢谢您的支持但不起作用
和txt=“”+data.d+”;$(“#result”).text(txt);
我想在搜索文本框中设置if-else条件,当用户输入正确的值而不是获取记录时,以及当用户输入错误的值而不是获取警报时(“您输入了错误的记录”),请共享console.log(数据)的屏幕截图您成功获得的服务器响应数据。然后,我将能够帮助您,并更改if-else条件ajax调用逻辑。我仍然面临此问题。您能告诉我您需要什么详细信息吗?当我取消注释此行时SqlCommand cmd=new SqlCommand(“从tblstud中选择studname,其中studname如@studname and active=@flagTrueOrFalse”,con);
give error:'必须声明标量变量“@flagTrueOrFalse.”数据库字段值标志位
传递另一个与@studname cmd.Parameters.AddWithValue相同的参数(“@studname”,“%”+studname+“%”);另外,在附加新响应之前,请清除现有数据。在搜索无效内容后,您是否可以分享您在响应对象数据中实际获得的详细信息?Hi@Rahul,我认为您只需要搜索活动记录,因为我无法在UI上看到任何具有“搜索活动的高级”选项/I的选项nactive student。因此,您不必接受参数,所以在SQL命令参数中传递静态值true,如果您不想传递静态值,那么您可以使用默认值(例如bool flag=true)接受bool数据类型。因此,如果您在传递标志值时未传递else override,那么它将接受默认值。现在告诉我应该去哪个地方你认为是错的吗?
if (data.indexOf( $("#txtsearch").val()) > 1)
//end of table tag then add this element
<span id="result"></span>
//changes in success
success: function (data) {
txt = "" + data.d + "";
$("#result").text(txt);
//$("#tbl").append(txt);
},