2011-03-04 60 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

謝謝,你會建議我在哪裏放置 - 我的javascript知識非常有限。我嘗試將它放在.js文件的這一部分: '$(document).ready(function(){' 但它似乎沒有奏效。 – James 2011-03-04 21:51:16

+0

我認爲你可能需要它在你的'$('#EventEventName')。change()'處理程序中,我還建議你嘗試在函數函數中加入alert('hello')'語句作爲第一條語句,你肯定知道函數何時運行。 – 2011-03-11 15:10:18