2016-09-12 120 views
0

在自定義模板(網站)中,我添加了輸入標籤。我想獲得這個標籤的價值,以便將其發送給控制器。通過將此添加到URL中,但我總是得到'None'。Odoo模板從輸入中獲取值

<template id="InputTemp" inherit_id="website_sale.cart"> 
     <xpath expr="//div[@id='right_column']" position="after"> 
      <div class="col-lg-3 col-lg-offset-1 col-sm-3 col-md-3 text-muted" id="inputform"> 
        <h3>Please enter value:</h3> 
        <label class="control-label" for="waardebon">Value</label> 
        <input type="text" name="value_input" class="form-control"/> 
        <a t-attf-href="/cart/#{str(value_input)}" class="btn btn-primary btn-lg mt8">Submit</a> 
      </div> 
     </xpath> 
    </template> 

回答

2

您的t-attf-href在任何數據輸入表單字段之前呈現。要做到這一點,你需要使用JavaScript來更新你的href。在odoo9中,您需要使用requirejs語法來加載適當的庫以向控制器運行發佈請求。如果您只是使用get請求,那麼以下內容適用於您的示例。

<template id="InputTemp" inherit_id="website_sale.cart"> 
    <xpath expr="//div[@id='right_column']" position="after"> 
     <div class="col-lg-3 col-lg-offset-1 col-sm-3 col-md-3 text-muted" id="inputform"> 
       <h3>Please enter value:</h3> 
       <label class="control-label" for="waardebon">Value</label> 
       <input type="text" name="value_input" id="value_input" class="form-control"/> 
       <a id='submit-btn' t-attf-href="#" class="btn btn-primary btn-lg mt8">Submit</a> 
       <script> 
        var value_input = document.getElementById('value_input'); 
        var submit_button = document.getElementById('submit-btn'); 

        value_input.addEventListener('input', function(){ 
         submit_button.href = "/cart/?input_value=" + value_input.value; 
        }); 
       </script> 
     </div> 
    </xpath> 
</template> 

這裏是一個示例控制器。

@http.route('/cart/', auth='public', website=True) 
def get_cart_vals(self, **kw): 
    # YOUR VARIABLE value_input SHOULD BE AVAILABLE IN THE QUERY STRING 
    query_string = request.httprequest.query_string 
    # PROCESS DATA AND LOAD THE RESPONSE TO THE USER OR REDIRECT HERE 
+0

感謝Philip!正是我需要的。除了保持禁用的按鈕外,也許這行(submit_button.disabled = false;)不正確? – Jesse

+0

很高興爲您工作。我刪除了關於禁用按鈕的部分。 –