2015-09-14 61 views
0

我使用OpenERP 7工作,我有兩個單選按鈕可以更改表格的值。 我已經創建了一個事件,它調用一個執行sql查詢的python函數,之後我必須重新加載頁面以顯示新的值。但問題是單選按鈕採用默認值!所以用戶只有一個選擇,所以我必須在重新加載頁面後設置單選按鈕的默認值。這是我的Qweb代碼:如何在加載頁面後設置單選按鈕的默認值?

<t t-if="number === 2"> 
     <table style="margin-left:360px;margin-top:0px;margin-bottom:0px;"> 
      <tr> 
       <td style="text-align:left;font-size:12px;"><b>Jusqu'au mois courant:</b></td> 
       <td> 
        <input type="radio" id="radio_budget_cumulee_jusque_mois_courant" value="courant" name="radio_budget_cumulee" checked="checked"/> 

       </td> 
      </tr> 
      <tr>  
       <td style="text-align:left;font-size:12px;"><b>Jusqu'au fin d'année:</b></td> 
       <td> 
        <input type="radio" id="radio_budget_cumulee_jusque_fin_anneee" value="fin" name="radio_budget_cumulee"/> 
       </td> 
      </tr> 
     </table> 
     <div id="itkbudg"> 
     <div t-attf-id="#{view.element_id}_action_#{column_index}_#{action_index}" class="oe_content" t-att-style="action.attrs.fold ? 'display: none;' : 'height: 220px;overflow-x: hidden;overflow-y: auto;padding: 0 12px 1px;'"></div> 
     </div> 
    </t> 

,這是我的JavaScript代碼:

$("#radio_budget_cumulee_jusque_mois_courant, #radio_budget_cumulee_jusque_fin_anneee").change(function(){ 


      est_jusqu_mois_courant=self.$el.find('#radio_budget_cumulee_jusque_mois_courant').is(':checked') 
      est_jusqu_finannee=self.$el.find('#radio_budget_cumulee_jusque_fin_anneee').is(':checked') 


      var mod=new instance.web.Model("itk.compta.dashboard"); 
      mod.call("itk_compta_dashboard_fct_changer_vue",[est_jusqu_mois_courant],{}).done(function(res) { 



      }); 

      self.do_action({ 
       type: 'ir.actions.client', 
       tag: 'reload', 
     }); 



      // $radios.filter('[value=fin]').prop('checked', est_jusqu_finannee); 
      //$radios.filter('[value=courant]').prop('checked', est_jusqu_mois_courant); 


      //I tried to use this code 
      var $radios = $('input:radio[name=radio_budget_cumulee]'); 
      $radios.filter('[value=fin]').attr('checked', est_jusqu_finannee); 
      $radios.filter('[value=courant]').attr('checked', est_jusqu_mois_courant); 
      // ANd i tried this code 
      radiobtnmois_courant = document.getElementById("radio_budget_cumulee_jusque_mois_courant"); 
      radiobtnmois_courant.checked = false; 

      radiobtnfin_anneee = document.getElementById("radio_budget_cumulee_jusque_fin_anneee"); 
      radiobtnfin_anneee.checked = true; 

     }); 

但始終單選按鈕取默認值。 請幫忙嗎?

+0

在客戶端,您可能必須使用localStorage或cookie來存儲選定的無線電值。並且,在頁面加載時,對這些值進行修改並設置爲您的無線電。 – lshettyl

回答

2

嘗試<input type="radio" id="..." autocomplete="off" />

和嘗試這樣的事情在你的腳本標籤

$(document).ready(function(){ 
    $(".myradios").prop("checked", true); // true or false 
}); 
+0

謝謝你: - ] –

1

你爲什麼要再次重新加載頁面洞?更好的方法是通過AJAX而不是空洞頁面重新加載所需的數據。您可以通過JQuery甚至AngularJS將新值歸因於您的表單

+0

你好亞歷山大是的,你是對的,我試圖做到這一點,但我沒有一個解決方案檢查這個問題,如果你想:http://stackoverflow.com/questions/32561223/how-to-刷新-A-特定-DIV-IN-A-頁面是-包含-A-儀表板 –

1

對於單選按鈕或複選框,可以使用.val()使用值數組。

$radios.val([ ]); // uncheck all radios 
$radios.val([ "fin" ]); // check the radio with value "fin" 
$radios.val([ "courant" ]); // check the radio with value "courant" 
$radios.val([ "fin", "courant" ]); // not useful in radio button context, but you can use this for checkboxes 
相關問題