带有ASP.NET控件的jQuery选择器

带有ASP.NET控件的jQuery选择器,jquery,asp.net-ajax,Jquery,Asp.net Ajax,iam在asp.net页面中为州、市和邮政编码字段使用ajax。我希望这个ajax功能是通用的。我想对具有不同ID的textbox和label控件使用相同的ajax功能。我尝试使用cssclassproperty,但它适用于这两组控件。代码如下 <script type="text/javascript"> $(document).ready(function () { $('.csszipcode').blur(function (event) {

iam在asp.net页面中为州、市和邮政编码字段使用ajax。我希望这个ajax功能是通用的。我想对具有不同ID的textbox和label控件使用相同的ajax功能。我尝试使用cssclassproperty,但它适用于这两组控件。代码如下

<script type="text/javascript">
   $(document).ready(function () {

       $('.csszipcode').blur(function (event) {

           var text = $('.csszipcode').val();

           if (text == "") {


               $('.csslblcity').text("");
               $('.csslblstate').text("");
               return;
           }

           var isValid = /^[0-9]{5}(?:-[0-9]{4})?$/.test(text);

           if (!isValid) {
               $('.csslblcity').text("");
               $('.csslblstate').text("");


               return;
           }


           $.ajax({

               type: "POST",
               url: "/SERVICES/DataService.asmx/getCityState",
               data: "{'zipcode': '" + $('.csszipcode').val() + "'}",
               contentType: "application/json; charset=utf-8",
               dataType: "json",
               success: function (msg) {
                   AjaxSucceeded(msg);
               },
               error: AjaxFailed

           });

       });

   });

   function AjaxSucceeded(result) {
       var city = result.d.split(':')[0];
       var state = result.d.split(':')[1];

       if (city != null && state != null) {

           $('.csslblcity').html(city);
           $('.csslblstate').html(state);
       }
       else {
           $('.csslblcity').text("");
           $('.csslblstate').text("");

       }
   }

   function AjaxFailed(result) {
       alert(result.status + ' ' + result.statusText);
   }

</script>

$(文档).ready(函数(){
$('.csszipcode').blur(函数(事件){
var text=$('.csszipcode').val();
如果(文本==“”){
$('.csslblcity')。文本(“”);
$('.csslblstate')。文本(“”);
返回;
}
var isValid=/^[0-9]{5}(?:-[0-9]{4})?$/.test(text);
如果(!isValid){
$('.csslblcity')。文本(“”);
$('.csslblstate')。文本(“”);
返回;
}
$.ajax({
类型:“POST”,
url:“/SERVICES/DataService.asmx/getCityState”,
数据:“{'zipcode':'”+$('.csszipcode').val()+“}”,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(msg){
阿贾克斯(味精);
},
错误:ajax失败
});
});
});
函数AjaxSuccessed(结果){
var city=result.d.split(“:”)[0];
var state=result.d.split(“:”)[1];
如果(城市!=null&&state!=null){
$('.csslblcity').html(城市);
$('.csslblstate').html(state);
}
否则{
$('.csslblcity')。文本(“”);
$('.csslblstate')。文本(“”);
}
}
函数ajax失败(结果){
警报(result.status+''+result.statusText);
}
下面是html代码。我想将ajax功能应用于以下两个方面 文本框。如何区分当前处于活动状态的

<asp:textbox id="txtzipcode" runat="server" cssclass="csszipcode"></asp:textbox>
<asp:textbox id="txtcandacode" runat="server" cssclass="csszipcode"></asp:textbox>

我不完全清楚你在问什么

你说:

我想使用相同的ajax 文本框和 使用不同ID标记控件

这意味着您希望文本框和标签具有相同的功能,但接着说:

我试过使用cssclassproperty,但它 应用于两组控件。这个 代码如下

<script type="text/javascript">
   $(document).ready(function () {

       $('.csszipcode').blur(function (event) {

           var text = $('.csszipcode').val();

           if (text == "") {


               $('.csslblcity').text("");
               $('.csslblstate').text("");
               return;
           }

           var isValid = /^[0-9]{5}(?:-[0-9]{4})?$/.test(text);

           if (!isValid) {
               $('.csslblcity').text("");
               $('.csslblstate').text("");


               return;
           }


           $.ajax({

               type: "POST",
               url: "/SERVICES/DataService.asmx/getCityState",
               data: "{'zipcode': '" + $('.csszipcode').val() + "'}",
               contentType: "application/json; charset=utf-8",
               dataType: "json",
               success: function (msg) {
                   AjaxSucceeded(msg);
               },
               error: AjaxFailed

           });

       });

   });

   function AjaxSucceeded(result) {
       var city = result.d.split(':')[0];
       var state = result.d.split(':')[1];

       if (city != null && state != null) {

           $('.csslblcity').html(city);
           $('.csslblstate').html(state);
       }
       else {
           $('.csslblcity').text("");
           $('.csslblstate').text("");

       }
   }

   function AjaxFailed(result) {
       alert(result.status + ' ' + result.statusText);
   }

</script>
这意味着您不希望它应用于文本和标签

你能澄清一下吗

另外,发布HTML(最好是呈现的代码)。这将帮助我们确定如何最好地实现您的愿望

我可以尝试一个答案,但考虑到我不确定你问的是什么,可能是错的

ASP.NET标签控件呈现为
HTML元素。要区分具有相同类的文本框和跨距,请使用以下选择器

$('input.csszipcode')
$('span.csszipcode')
要将选择器仅限于文本框,请尝试以下操作:

$('input:text.csszipcode')

如果这不是您想要的,您可以添加更多说明吗?

您是否尝试使用ClientId?点击这里->你必须澄清这个问题。事实上,这是没有意义的。我可以在这方面帮助你,但你必须在我之前就你的其他答案开始投票。