Javascript更改表单输入的问题

时间:2016-09-25 20:21:39

标签: javascript html forms

提前致谢。

我想更改输入文字的值" 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";
    }

}

3 个答案:

答案 0 :(得分: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 :(得分: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标记:

<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/ - 工作正常。请检查。

编辑:添加&#34;价值&#34;到每个选项标签。

答案 2 :(得分:0)

我可以看到的一个明显错误是您使用equality operator document.formulario.opciones.value = "1"

应该是

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

因此,您的第一个if语句将始终被评估为true。