2016-09-25 5 views
0

Заранее спасибо.Javascript Проблема смены формы ввода

Я хочу изменить значение входного текста «total» в форме, зависящей от значения выбора «opciones». Я пробовал с onchange(), с document.getElementById("") .значением, но он не работает.

Я не знаю, что терпит неудачу, но я не могу изменить входное значение.

<form name="formulario"> 

     <select name="opciones" id="opciones"> 
             <option>1</option> 
             <option>2</option> 
             <option>3</option> 
            </select> 
        <input type="text" name="suma" id="total"> 
</form> 

Javascript:

function formtotal() { 

    if (document.formulario.opciones.value = "1") { 

     document.formulario.suma.value = "1000"; 
    } 

    else if (document.formulario.opciones.value = "2") { 

     document.formulario.suma.value = "1250"; 
    } 

    else if (document.formulario.opciones.value = "3") { 

     document.formulario.suma.value = "1500"; 
    } 

} 

ответ

0

Я думаю, что вместо того, чтобы document.formulario.suma.value это должно быть document.formulario.total.value.

Однако код ниже работает нормально. Протестировано в jsfiddle (ссылка ниже).

function formtotal() { 
    var x = document.getElementById("opciones").value; 
    if (x == "1") { 
     document.getElementById("total").value = "1000"; 
    } 
    else if (x == "2") { 
     document.getElementById("total").value = "1250"; 
    } 
    else if (x == "3") { 
     document.getElementById("total").value = "1500"; 
    } 
} 

Добавить OnChange для выбора тега согласно ниже фрагменте кода:

<select name="opciones" id="opciones" onchange="formtotal()"> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
</select> 

https://jsfiddle.net/fghxhtmk/ - работает отлично. Пожалуйста, проверьте.

EDIT: добавлено «значение» для каждого тега параметра.

+0

Я модифицированное все, что вы сказали, и его не работает. –

+0

Не могли бы вы посетить приведенную ссылку: https://jsfiddle.net/fghxhtmk/ –

+0

Привет @PabloBarrios, я пропустил атрибут «значение» в теге

0

Очевидным ошибка, которую я вижу, это ваше использование equality operator document.formulario.opciones.value = "1"

Должно быть

document.formulario.opciones.value == "1"

Благодаря этому, ваш первый, если оператор всегда будет оценен как истинный.

+0

Я попробовал его change = for == и он тоже не работает –

2

Я думаю, вы должны попробовать работать с

let e = document.getElementById("opciones"); 
let total = document.getElementById("total"); 

switch(e.selectedIndex) { 
case 0: 
    total.value = 1000; 
    break; 
case 1: 
    total.value = 1250; 
    break; 
case 2: 
    total.value = 1500; 
    break; 
default: 
    total.value = 0; 
} 
+1

+1 для использования оператора switch, это гораздо более чистый подход и позволяет обрабатывать случай 'default', когда идет какой-то идиот, и редактирует drop- без обновления Javascript. – Basic