2010-12-13 6 views
-2

iam은 주, 도시 및 우편 번호 필드에 asp.net 페이지에서 ajax를 사용합니다. 이 Ajax 기능을 일반화하고 싶습니다. 나는 다른 아이디와 텍스트 상자 및 레이블 컨트롤에 대해 동일한 아약스 기능을 사용하고 싶습니다. 나는 cssclassproperty로 시도했지만 컨트롤 세트에 모두 적용됩니다. 코드는 다음과 같습니다ASP.NET 컨트롤이있는 jQuery 선택기

<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 코드는 다음과 같습니다. 다음 두 개의 텍스트 상자에 대해 ajax 기능을 적용하려고합니다. 어떻게 현재 활성화되어 있는지 구분할 수 있습니다.

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

또한 HTML을 표시하십시오. – Jamiec

+0

ClientId를 사용해 보셨습니까? Checkc here -> http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx –

+0

이 질문을 명확히해야 할 것입니다. 그것이 그렇듯이 말이되지 않습니다. –

답변

1

나는 당신이 무엇을 요구하고 있는지 분명하지 않습니다.

당신 말 :

내가 텍스트 상자와 다른 ID로 레이블 컨트롤 같은 아약스 기능을 사용하고 싶습니다.

다음 텍스트 상자 및 라벨에 대한 동일한 기능을 원하는 암시하지만 말 :

내가 cssclassproperty으로 시도했지만이 컨트롤의 두 집합에 적용. 코드는 다음과 같습니다.

텍스트 보 및 레이블에 적용하지 않으려한다는 것을 의미합니다.

당신이 명확히 할 수 있습니까?

또한 HTML (게시 된 코드가 바람직 함)을 게시하십시오. 이것은 우리가 원하는 것을 성취하는 최선의 방법을 확인하는 데 도움이 될 것입니다.

는 아마 잘못 될 수있다, 당신이 무엇을 요구 확실하지 않다 주어진 대답에 자상을 할 수 있지만.

ASP.NET 레이블 컨트롤은 <span> HTML 요소로 렌더링됩니다. 같은 클래스와 텍스트 상자와 지속 기간을 구별하기 위해, 단지 텍스트 상자에 선택 범위를 좁히려면 다음 선택기

$('input.csszipcode') 
$('span.csszipcode') 

를 사용,이 시도 :

$('input:text.csszipcode') 

를이없는 경우 당신이 할 수있는 후 무엇 당신은 더 많은 설명을 추가합니까?