2011-03-04 4 views
1

완벽하게 작동하는 OnChange 이벤트에 대해 작성한 일부 코드가 있습니다.Javascript/jQuery 선택된 드롭 다운 항목을 기반으로 한 필드 숨기기

<script type="text/javascript"> 
        function UpdEventChanged(selectEl) { 
         var text = selectEl.options[selectEl.selectedIndex].text; 
         if (text == "Sickness" || text == "Holiday") { 
          $("input[id$=eventPostCode").hide(); 
          $("#ContentPlaceHolder1_LBLUpdPCReq").hide(); 
          $("#ContentPlaceHolder1_lblUpdPC").hide(); 
         } 

         else { 
          $("input[id$=eventPostCode").show(); 
          $("#ContentPlaceHolder1_LBLUpdPCReq").show(); 
          $("#ContentPlaceHolder1_lblUpdPC").show(); 
         } 
        } 
</script> 

페이지로드 이벤트에서 작동하도록 위 코드를 통합해야합니다. 여기 내 코드입니다 :

// update Dialog 
    $('#updatedialog').dialog({ 
     autoOpen: false, 
     width: 500, 
     buttons: { 
      "update": function() { 
       //alert(currentUpdateEvent.title); 

       var eventToUpdate = { 
        id: currentUpdateEvent.id, 
        //title: $("#eventName").val(), 
        title: $("#EventSalesPerson option:selected").text(), 
        description: $("#eventDesc").val(), 
        salesperson: $("#EventSalesPerson option:selected").text(), 
        eventPostCode: $("input[id$=eventPostCode]").val(), 
        eventname: $("#EventEventName option:selected").text() 
       }; 

       { 
        PageMethods.UpdateEvent(eventToUpdate, updateSuccess); 
        $(this).dialog("close"); 

        currentUpdateEvent.title = $("#eventName").val(); 
        currentUpdateEvent.description = $("#eventDesc").val(); 
        currentUpdateEvent.salesperson = $("#EventSalesPerson option:selected").text(); 
        currentUpdateEvent.eventname = $("#EventEventName option:selected").text(); 
        currentUpdateEvent.eventPostCode = $("input[id$=eventPostCode]").val(); 

        $('#calendar').fullCalendar('updateEvent', currentUpdateEvent); 
        location.reload(true); 
       } 

      }, 
      "delete": function() { 

       if (confirm("do you really want to delete this event?")) { 

        PageMethods.deleteEvent($("#eventId").val(), deleteSuccess); 
        $(this).dialog("close"); 
        $('#calendar').fullCalendar('removeEvents', $("#eventId").val()); 
       } 

      } 

     } 
    }); 

하면 #EventEventName 선택한 텍스트 = 휴일 또는 질병 후 나는 다음과 같은 항목을 숨길 수해야합니다

"input[id$=eventPostCode" 
"#ContentPlaceHolder1_LBLUpdPCReq" 
"#ContentPlaceHolder1_lblUpdPC" 

을 그리고 그들은 다음 선택되지 않은 경우 분명 위의 표시되어야합니다 .

감사

답변

1

이 같은 대해 뭔가해야 할 것 같습니다 :

var EventEventNameText = $('#EventEventName').val(); 
if (EventEventNameText=='Holiday' || EventEventNameText=='Sickness') { 
    $('#eventPostCode').hide(); 
    $('#ContentPlaceHolder1_LBLUpdPCReq').hide(); 
    $('#ContentPlaceHolder1_lblUpdPC').hide(); 
} 

당신을 위해 작동하는 방법을 알려주세요합니다.

+0

고마워요, 어디에서이 장소를 제안 하시겠습니까? 내 자바 스크립트 지식은 매우 제한되어 있습니다. 나는이 섹션을 .js 파일의이 섹션에 넣으려고했다 : '$ (document) .ready (function() {' 그러나 작동하지 않는 것 같아요. – James

+0

아마 필요할 것 같아요. 당신의'$ ('# EventEventName'). change()'핸들러 내에서 디버깅을 위해 함수의 첫 번째 명령문으로'alert ('hello') 문을 두는 것이 좋습니다. 함수가 실행될 때 확실히 알 수 있습니다. –

관련 문제