如何根据下拉菜单选择让2个文本框更改值?

时间:2017-06-21 20:32:56

标签: javascript asp.net

我正在编写javascript if语句根据下拉列表选择更改文本框内的值。我有2个文本框字段和2个下拉菜单。

DDB和DDA是我的下拉菜单ID。 TextBox1和TextBox2是我的文本框ID。

我目前使用的代码有效,但TextBox1中的值始终保持在-90.4567,无论我的选择如何。另一方面,TextBox2根据我的下拉选择而改变,并且工作正常。

我的javascript代码中有什么问题导致TextBox2在-90.4567上保持不变?

<script>
function Blah(value) {
var test = document.getElementById("<%=TextBox1.ClientID %>");
var test2 = document.getElementById("<%=TextBox2.ClientID %>");
var ddlB = document.getElementById("<%=DDB.ClientID %>");
var ddlA = document.getElementById("<%=DDA.ClientID %>");

if (ddlB.value == "10.1" && ddlA.value == "Inside") { test2.value = '10.1234' } { test.value = '-90.1234' }
if (ddlB.value == "10.2" && ddlA.value == "Inside") { test2.value = '20.1234' } { test.value = '-90.2345' }
if (ddlB.value == "10.3") { test2.value = '30.1234' } { test.value = '-90.3456' }
if (ddlB.value == "10.4") { test2.value = '40.1234' } { test.value = '-90.4567' }
}
</script>     

2 个答案:

答案 0 :(得分:2)

当您需要if执行多行代码时,它们都必须包含在一个块中,如下所示:

if (condition) {
   //multiple lines of code
}

按照您的方式执行,无论条件如何,第二个块始终将执行。因为test.value = '-90.4567'是最后一个,所以它最终会被设置为。

查看此示例,并注意第二个块是如何始终执行的:

&#13;
&#13;
if (false) {console.log("true")} {console.log("false")}
&#13;
&#13;
&#13;

你的条件应该看起来更像这样,尽管可以肯定他们可以用else if来清理它们。

if (ddlB.value == "10.1" && ddlA.value == "Inside") { 
    test2.value = '10.1234';
    test.value = '-90.1234';
}

if (ddlB.value == "10.2" && ddlA.value == "Inside") { 
    test2.value = '20.1234';
    test.value = '-90.2345';
}

if (ddlB.value == "10.3") {
    test2.value = '30.1234';
    test.value = '-90.3456';
}

if (ddlB.value == "10.4") { 
    test2.value = '40.1234';
    test.value = '-90.4567' }
}

答案 1 :(得分:-1)

您需要使用jQuery下拉列表中的onchange事件:

$(document).ready(function () {
    $(':checkbox').change(function () {
            if($(this).val() == $VALOR1){
                // Código para valor 1             
         }else{
                //Código para valor 2
         }
});