2014-07-21 2 views
1

과정은 간단하다 : 텍스트 상자 드롭 다운 목록의 텍스트 상자 텍스트 인 경우 다시 게시를 방지하는 방법은 무엇입니까?

    • 텍스트 입력 텍스트 값을 업데이트 드롭 다운 목록의 값과 일치합니다.
    • 텍스트가 드롭 다운 목록의 값과 일치하지 않으면 ASP.NET onTextChanged 이벤트를 사용하여 포스트 백을 수행하십시오. 은 (여기에 문제가있다. 아래의 코드는 현재 모든 경우에 다시 게시를 방지)

      <asp:DropDownList ID="d" runat="Server" AppendDataBoundItems="true"/> 
      
      <asp:TextBox ID="t" runat="Server" AutoPostBack="true" onchange="if(!test(this)) return false;"/> 
      

      JQUERY

      $(function test() { 
          var d = ('#<%= d.ClientID%>'), 
           t = ('#<%= t.ClientID%>'); 
      
          $(d + ',' + t).on('change', function() { 
          var val = this.value; 
          $(d + ' option').each(function() { 
           if (this.value == val) { 
           $(d + ',' + t).val(val); 
           return false; 
           } 
           return true; 
          }); 
          }); 
      }); 
      

      이 코드는 업데이트를 위해 완벽하게 작동

    HTML을 드롭 다운 값 이 코드는 모든 경우에 다시 게시를 방지합니다.

    나는 문제는 onchange가 텍스트 박스에서 해고되고 자바 스크립트 onchange 내의 후속 코드가 작동하지 않는다고 생각한다.

  • +0

    을 변경하는 경우 textbox 및 postback을 방지/허용하십시오. –

    +0

    변경 방법을 먼저 시도하십시오. AutoPostBack = "false"그렇지 않으면 서버에 계속 제출하고 서버 값을 아약스 호출로 시도하여 데이터를 가져 와서 텍스트 값이 아니라면 드롭 다운으로 채 웁니다. 이미 거기 –

    +0

    $ (d + ','+ t) 이것은 선택 자라고 생각했습니다. 그러나 여기 그것의 명확하지 않습니다. 변경 이벤트가 텍스트 상자 오른쪽에 있습니까? – Amit

    답변