Javascript在选择时将值生成到表单文本框中

时间:2013-05-16 01:25:05

标签: javascript jquery

尝试弄清楚如何使用javascript在表单的文本框中动态生成文本。

我想从下拉列表中选择一种事件类型,并在该选择中将值输入到eventprice的表单的文本框中。

到目前为止,这就是我所拥有的,但我没有在文本框中产生任何值得任何帮助的价值。

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

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

        }



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

3 个答案:

答案 0 :(得分:2)

如果你不介意使用jQuery,那将是轻而易举的:你只需要为每个选项添加数据属性价格。这个功能的作用是:

  1. 在更改值时,将所有选项的值与选择框中当前可见的值进行比较。
  2. 如果值相同,则将data-attribute复制到另一个输入。
  3. 工作演示: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'));
        }
      });
    });
    

答案 1 :(得分: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/

希望这会有所帮助:)

答案 2 :(得分:0)

根据建议将代码的第3 /第4行修改为$('#eventprice').val("45");,但建议的语法错误除外。