2011-11-19 23 views
1

我everyone, 我正在開發一個SaaS應用程序,由於一些額外的插件集成,我需要使用Jquery而不是Prototype。我的代碼與Prototype一樣魅力無法與Jquery一起運行,我不習慣在此框架中編寫代碼... 是否有人可以幫我「翻譯」這一個: 非常感謝您的幫助。將原型代碼轉換爲Jquery版本

var rates = new Array(); 

<% for tva_rate in @tva_rates -%> 

    rates.push(new Array(<%= tva_rate.id %>, '<%=h tva_rate.taux %>', '<%=h tva_rate.compte_id %>')); 

<% end -%> 

function tvaSelected() { 


    tva_id = $('journal_tva_id').getValue(); 

    show = 1; 
    if (tva_id > 0){ 
    rates.each(function(rate) { 
     if (rate[0] == tva_id) { 
      $('journal_taux').setValue(rate[1]); 
      $('journal_compte_tva').setValue(rate[2]); 
      show = 2; 
     } 
    }); 
} 

    if (show == 1) { 
    $('tva_taux_field').hide(); 
    } else { 
    $('tva_taux_field').show(); 
    } 
} 
document.observe('dom:loaded', function() { 
    tvaSelected(); 
    $('journal_tva_id').observe('change', tvaSelected); 
}); 

回答

0

我假設你已經做了一個完整的開關,並沒有試圖同時使用jQuery和Prototype(這可以通過這種方式完成)。

試試這個:

var rates = new Array(); 

<% for tva_rate in @tva_rates -%> 

    rates.push(new Array(<%= tva_rate.id %>, '<%=h tva_rate.taux %>', '<%=h tva_rate.compte_id %>')); 

<% end -%> 

function tvaSelected() { 

    tva_id = $('#journal_tva_id').val(); // use id selector and val() 

    show = 1; 
    if (tva_id > 0){ 
    $.each(rates,function(idx,rate) { 
     if (rate[0] == tva_id) { 
      $('#journal_taux').val(rate[1]); // use id selector and val() 
      $('#journal_compte_tva').val(rate[2]); // use id selector and val() 
      show = 2; 
     } 
    }); 
} 

    if (show == 1) { 
    $('#tva_taux_field').hide(); // use id selector 
    } else { 
    $('#tva_taux_field').show(); // use id selector 
    } 
} 

$(function() { // use short-hand for document.ready() instead of onload event observer 
    tvaSelected(); 
    $('#journal_tva_id').change(tvaSelected); //use id and set up change handler 
}); 
+0

嗨Tvan,我只是測試你的代碼,它是不幸的是沒有工作...我使用jQuery的軌道,如果它可以幫助...即使是簡單的隱藏/顯示功能不起作用。 – Dannoel

+0

Firebug在錯誤控制檯中顯示什麼?你確實有jQuery包含在頁面中,沒有包含Prototype,對嗎? – tvanfosson

+0

對不起我的新手問題bug我在哪裏可以驗證在螢火蟲? Console說,rates.each不是一個函數。 – Dannoel