1

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

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

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

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

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

        }



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

3 回答 3

2

如果您不介意使用 jQuery,这将是一件轻而易举的事:您只需将 data 属性 price 添加到每个选项。这个函数的作用是:

  1. 当值更改时,将所有选项的值与选择框中当前可见的值进行比较。
  2. 如果值相同,则将数据属性复制到另一个输入。

工作演示: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'));
    }
  });
});
于 2013-05-16T01:58:05.950 回答
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/

希望这可以帮助 :)

于 2013-05-17T23:02:45.317 回答
0

按照建议修改代码的第 3/4 行$('#eventprice').val("45");,除了该建议有语法错误。

于 2013-05-16T01:58:14.093 回答