通过选择一个下拉列表显示两个不同的值

时间:2014-12-12 13:46:14

标签: javascript jquery html

我想在两个不同的输入框中显示两个值。例如,如果选择'A', 两个输入框应在第一个输入框中显示“a”,在第二个输入框中显示“01”。但我的概念只显示'a'和&不是'01'。

HTML:

<select name="test" id="test" onchange="trying()" onchange="trying2()">
    <option value="" >Select</option>
    <option value="a">A</option>
    <option value="b">B</option>
</select> 

<input type="text" name="display" id="display" />
<input type="text" name="display2" id="display2" />

SCRIPT:

function trying() {
    document.getElementById("display").value = document.getElementById("test").value;
}

function trying2() {
    if (option.value == "a") {
        document.getElementById("display2").value = 01;
    }
}

4 个答案:

答案 0 :(得分:1)

尝试更改您的选择&#34; onchange&#34;像这样:

<select name="test" id="test" onchange="trying();trying2();">
<option value="" >Select</option>
<option value="a">A</option>
<option value="b">B</option>
</select>

你的&#34;尝试2&#34;脚本应如下所示:

    function trying2() {
        if (document.getElementById("test").value == "a") {
            document.getElementById("display2").value = 01;
        }
    }

如果您想使用JQuery,那么您可以这样做,(记得删除onchange =&#34;尝试();尝试2();&#34;):

    $(document).ready(function() {
        $('#test').on('change', function () {

            var myVal = $('#test').val();
            $('#display').val(myVal);
            if (myVal == 'a') { $('#display2').val(myVal); }
            else { $('#display2').val(''); }

        });
    });

答案 1 :(得分:1)

将这两个函数合并为如下所示:

var selector = document.getElementById("test");    
function trying() {
  var selectVal = selector.value;
  document.getElementById("display").value = selectVal;
  document.getElementById("display2").value = selectVal == "a" ? "01" : "";
}

selector.addEventListener("change", trying);

演示on codepen

P.S。除非没有其他方法,否则不鼓励内联事件处理程序。

答案 2 :(得分:0)

您不能拥有两个相同名称的属性(onchange),只有一个属性正在应用。你可以做一些事情

  • 从单个onchange属性
  • 调用这两个函数
  • 使用addEventListener添加多个处理程序
  • $('#test').on('change', trying).on('change', trying2)

第二个问题是

function trying2() {
    // "option" is not defined
    if (option.value == "a") {
        document.getElementById("display2").value = 01;
    }
}

应该是

function trying2() {
    if (document.getElementById("test").value == "a") {
        document.getElementById("display2").value = 01;
    }
}

答案 3 :(得分:-1)

你是这样做的:

<input id"abc"/>
<input id"cde"/>

然后使用jquery:

$("#abc").val("a");
$("#cde").val("01");