【问题标题】:Not able to retrieve if the parameter starts with zero when passing from jquery to my webmethod从 jquery 传递到我的 webmethod 时,如果参数以零开头,则无法检索
【发布时间】:2013-10-21 12:18:11
【问题描述】:

我的问题看起来很奇怪,我正在从 jQuery 调用 Autocomplete.asmx 网络方法。第一次传递第一个参数 0,第二次替换零,而不是 0,显示任何其他数字。

aspx:

  function SearchText() {

                    $('#<%=txtphoneno.ClientID%>').autocomplete({
                        source: function (request, response) {
                            Search();
                        }
                    });
                }

                //-->loadtop 5 jobs 
                function Search() {

                    var callid = $('#<%= txtphoneno.ClientID%>').val().toString();
                  //  alert(callid);
                    $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: "../HttpHandler/Autocomplete.asmx/GetCallername",
                        data: "{'callerid':" + callid + "}",
                                     dataType: "json",
                        success: function (data) {
                            //response(data.d);
                            //  alert(data.d);
                            $('#<%=txtname .ClientID %>').removeClass('text-label');
                            $('#<%=txtname .ClientID %>').addClass('lbls');
                            $('#<%=txtnote .ClientID %>').removeClass('text-label');
                            $('#<%=txtnote .ClientID %>').addClass('lbls');


                            document.getElementById('<%=txtname .ClientID %>').value = data.d[0];

                            document.getElementById('<%=txtnote .ClientID %>').value = data.d[1];

                            if (data.d != 'User Doesnt Exist') {

                                var param = $('#<%= txtphoneno.ClientID%>').val();
                                          $("#<%=IframeJobHistory.ClientID%>").show();

                                          LoadHistoryDetails(param);
                                      }
                                      else {
                                          // $("#<%=IframeJobHistory.ClientID%>").hide();

                                      }
                        },
                        error: function (result) {
                            // alert("Error");
                        }
                    });
                }

** CS 代码 AutoComplete.Asmx**

[WebMethod ]    
        public string [] GetCallername(String callerid)
        {
            ..............................
                return CallerDetails;

        }
    }

String callerid,当用户第一次输入0时,我返回0,但第二次当用户输入任何数字时,我得到了数字,但零消失了。

如果我使用任何其他数字,除了零之外一切正常。

【问题讨论】:

    标签: asp.net web-services jquery


    【解决方案1】:

    不要使用零,而是尝试使用-1

    【讨论】:

    • 嗨,用户将键入呼叫者 id,例如 04444... 类似这样的东西。所以不能添加 -1
    【解决方案2】:

    对不起,我不知道你错过了什么,但我知道简单的一个 解决您的问题。

    如果第一个值不为零,只需添加此代码以动态添加 0,否则将显示您的默认值

    设置断点并检查

        [WebMethod ]    
        public string [] GetCallername(string callerid)
        {
           string Filteredcallerid = !string.IsNullOrEmpty(callerid) ? callerid.Substring(0, 1) : "";
           callerid = Filteredcallerid != "0" ? "0" + callerid : callerid;
           return CallerDetails;
    
        }
    

    【讨论】:

    • 我试过如果我添加零也缺少零,看起来字符串不以零开头。但是如果我添加其他数字,它们会显示得很奇怪
    • 我的解决方案是,如果用户输入的数字以零开头,则显示该数字,如果输入零但零消失时,此时添加零。我认为用户一直输入零?对吗?
    • No some Times ,数字会从零开始。我尝试通过添加零作为起始编号的任何方式,但它消失了,如果起始编号不是零,那么它可用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    相关资源
    最近更新 更多