2013-05-16 4 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. Если значения одинаковы, копирует атрибут данных на другой вход.

Работа демо: 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

Изменение 3-й/4-ю строку вашего кода, чтобы быть $('#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/

Надеется, что это помогает :)

Смежные вопросы