【问题标题】:how to check the textbox value user enter the value in textbox is right or wrong using ajax Jquery?如何使用ajax Jquery检查文本框值用户在文本框中输入的值是对还是错?
【发布时间】: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()) &gt; 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


【解决方案1】:

每当您尝试搜索学生时,我想首先在添加响应数据之前删除 Html。因此,如果您多次更新内容,可以避免混淆。

另外,我注意到的一件事是您在 SQL 查询中采用了 2 个参数,但您没有传递 @flagTrueOrFalse 参数。所以让它正确。如果仍然遇到问题,请向我们提供更多详细信息,以便我们为您提供帮助。

【讨论】:

  • 我仍然面临这个问题,你能告诉我你需要什么细节吗?
  • 当我取消注释这一行 SqlCommand cmd = new SqlCommand("SELECT studname FROM tblstud WHERE studname LIKE @studname and active=@flagTrueOrFalse", con); 时给出错误:'必须声明标量变量“@flagTrueOrFalse”。'数据库字段值flag bit
  • 传递另一个与@Studname 相同的参数 cmd.Parameters.AddWithValue("@studname", "%" + studname + "%");另外,在附加新响应之前清除您现有的数据另外,您能否分享一下在搜索无效内容后您在响应对象数据中实际获得的详细信息?
  • 嗨@Rahul,我认为您只需要搜索活动记录,因为我无法在 UI 上看到任何具有搜索活动/非活动学生的高级选项的选项。所以你不必带参数,所以在 SQL 命令参数中传递静态值 true,如果你不想传递静态,那么你可以采用 bool 数据类型和默认值,例如。布尔标志=真。因此,如果您在传递标志值时不传递 else 覆盖,它将采用默认值
  • 现在告诉我我应该去哪个地方出错?
【解决方案2】:

rahul 我认为您的 ajax 请求没有问题。您可以在成功功能中通过 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);

                    },

【讨论】:

  • 感谢&lt;/thead&gt;&lt;/table&gt; &lt;span id="result"&gt;&lt;/span&gt;txt = "" + data.d + ""; $("#result").text(txt);的支持,但无法使用
  • 当用户输入正确的值而不是获取记录时,我想在搜索文本框上设置 if-else 条件,当用户输入错误的值而不是获取警报时(“你输入了错误的记录”)
  • 请分享您成功获得的服务器响应数据的console.log(data) 截图。那我就可以帮你了
  • 另外,改变if-else条件ajax调用逻辑
【解决方案3】:

条件 (data == "#txtsearch") 很可能永远不会满足。 我猜你想写

if (data.indexOf( $("#txtsearch").val()) > 1) 

比较数据。 反正效率不是很高,我想正确地使用成功和错误回调来实现你想要的。

【讨论】:

  • if (data.indexOf($("#txtsearch").val()) &gt; 1) { 那行给出错误:未捕获的 TypeError: data.indexOf is not a function
  • 如何解决这个问题以及如何实现这个搜索功能?帮助
猜你喜欢
  • 2013-04-09
  • 1970-01-01
  • 2014-07-28
  • 2014-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-25
相关资源
最近更新 更多