2013-08-17 13 views
0

我在visualforce頁面中有一個commandButton,我需要添加oncomplete屬性。將jquery變量傳遞到函數oncomplete中

<apex:commandButton id="btnParticipant" value="Add Participant" action="{!addParticipant}" reRender="participantTable" /> 

我需要調用我定義的jquery方法,並將錶行作爲我的參數傳遞。這裏是我的jQuery:

<script type="text/javascript"> 
    var j$ = jQuery.noConflict(); 

    j$(document).ready(function() { 
     var dataRows = j$('tr.dataRow'); 

     dataRows.each(function(index, elem) { 
      updateImages(elem); 
     }); 

     j$("img[id$=':deleteImage']").on("click", function(event) { 
      updateImages(j$(this).closest('tr')); 
     }); 

     j$('[id$=btnParticipant]').on("click", function(event){ 
      var dataRows = j$('tr.dataRow'); 
      dataRows.each(function(index, elem) { 
       updateImages(elem); 
      }); 
     }); 

    }); 

    function updateImages(myRow) { 
     var rowInputs = j$(myRow).find('input[type="text"]'); 
     var contact = (j$(rowInputs[0]).val()); 
     var user = (j$(rowInputs[1]).val()); 
     var account = (j$(rowInputs[2]).val()); 

     if (contact !== '') { 
      j$(rowInputs[0].parentNode).find('img').show(); 
      j$(rowInputs[1].parentNode).find('img').hide(); 
      j$(rowInputs[2].parentNode).find('img').hide(); 
     }  
     else if (user !== '') { 
      j$(rowInputs[0].parentNode).find('img').hide(); 
      j$(rowInputs[1].parentNode).find('img').show(); 
      j$(rowInputs[2].parentNode).find('img').hide(); 
     } 
     else if (account !== '') { 
      j$(rowInputs[0].parentNode).find('img').hide(); 
      j$(rowInputs[1].parentNode).find('img').hide(); 
      j$(rowInputs[2].parentNode).find('img').show(); 
     } 
     if (account !== '' && contact !== '') { 
      j$(rowInputs[0].parentNode).find('img').show(); 
      j$(rowInputs[1].parentNode).find('img').hide(); 
      j$(rowInputs[2].parentNode).find('img').hide(); 
     } 
    } 
</script> 

特別是,我需要用的onComplete屬性以某種方式複製這部分代碼:

var dataRows = j$('tr.dataRow'); 

     dataRows.each(function(index, elem) { 
      updateImages(elem); 
     }); 

基本上,上面的代碼會爲每個錶行與類名「datacell」並遍歷行並隱藏某些圖像。

如何使用commandButton中的oncomplete屬性調用此代碼?

感謝您的任何幫助。 此致敬禮。

回答

0

我不知道我理解你的問題。如果我理解正確,應該是這樣的:

<apex:commandButton id="btnParticipant" value="Add Participant" 
action="{!addParticipant}" reRender="participantTable" oncomplete="updateRows()"/> 

j$(document).ready(function() { 
    updateRows();  
}); 

function updateRows(){ 
     var dataRows = j$('tr.dataRow'); 

     dataRows.each(function(index, elem) { 
      updateImages(elem); 
     }); 

     j$("img[id$=':deleteImage']").on("click", function(event) { 
      updateImages(j$(this).closest('tr')); 
     }); 

     j$('[id$=btnParticipant]').on("click", function(event){ 
      var dataRows = j$('tr.dataRow'); 
      dataRows.each(function(index, elem) { 
       updateImages(elem); 
      }); 
     }); 
}