2013-05-16 54 views
1

試圖弄清楚如何在使用javascript的表單的文本框中動態生成文本。Javascript在選擇的表單文本框中生成值

我想從我所做的下拉列表中選擇一種事件類型,並在該選擇上將值輸入到eventprice表單的文本框中。

到目前爲止,這是我有,但我沒有任何價值在文本框中產生任何幫助表示讚賞。

function totalprice(){ 
     if($('#type').val() == '3'){ 

     $('#eventprice') == ("45"); 
     } 

     } 



<input type="text" disabled="" id="eventprice" onChange="totalprice();" name="eventprice" class="form-input" /> 
+0

只是說,你_know_有_good_ _proven_框架,做這種事情(稱爲數據綁定),對嗎? (KnockoutJS,EmberJS,AngularJS,列表很長)另外,請查看http://stackoverflow.com/questions/16483560/how-to-implement-dom-data-binding-in-javascript –

+0

你想做什麼在你的*功能*?我無法得到 – Sachin

+1

此外,修復您的當前代碼$('#eventprice'.val(「45」);'而不是'$('#eventprice')==(「45」);' –

回答

2

如果您不介意使用jQuery,它將變得輕而易舉:您只需將數據屬性價格添加到每個選項。什麼這個函數是:

  1. 當值改變比較的所有選項當前在選擇框中看到的值的值。
  2. 如果值相同,則將data-attribute複製到另一個輸入。

工作演示:http://jsbin.com/acuyux/6/edit

的HTML

<select id="type"> 
    <option data-price="25">Party</option> 
    <option data-price="35">Meeting</option> 
    <option data-price="45">Lounge</option> 
    </select> 
<input type="text" id="eventprice" name="eventprice" disabled="" class="form-input" /> 

的JS

$('#type').change(function totalprice(){ 
    $('option').each(function() { 
    if($(this).val() === $('#type').val()) { 
     $('#eventprice').val($(this).data('price')); 
    } 
    }); 
}); 
+0

有很多DOM庫使用'$'...這不是jQuery特定的 – mate64

+0

的確,錯誤的假設,我編輯了我的答案 – Tyblitz

0

修改代碼的第三/第四行是$('#eventprice').val("45");的建議,除了該建議有一個語法錯誤。

1

我會推薦使用jQuery,因爲它的高效代碼。

HTML:

<input type="text" disabled id="eventprice" /> 
    <select id="select"> 
    <option data-cost="5">Event 1</option> 
    <option data-cost="10">Event 2</option> 
    </select> 

的jQuery:

$('#select').change(function() { 
     var str = $(this).find('option:selected').data('cost'); 
     $('#eventprice').val(str); 
    }); 

    // This code can be used to run it on load 
    // $('#select').trigger('change'); 

代碼在行動:
http://jsfiddle.net/LkaWn/

希望這有助於:)

相關問題