Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查文本框值用户使用ajax Jquery在文本框中输入值是否正确?_Javascript_Jquery_Html_Asp.net_Ajax - Fatal编程技术网

Javascript 如何检查文本框值用户使用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>

我正在使用ajax jquery搜索功能

当我在文本框中搜索记录,然后得到记录,但当我搜索虚假记录,然后得到虚假记录?这就是问题所在

表:

雇员

                  <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);

                    },