2017-06-21 34 views
0

我正在写JavaScript,如果语句根据下拉选择更改文本框内的值。我有2个文本框和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

当你需要一个if执行多行代码,它们都必须被包裹在一个单独的块,像这样:

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

这样做它自己的方式,第二块是总是无论条件如何,即将执行。因为test.value = '-90.4567'是最后一个,所以最终会被设置为。

看看这个例子,并注意第二块是如何总是执行:

if (false) {console.log("true")} {console.log("false")}

你的条件应该看起来可能更像这一点,但无可否认,他们能买得起是使用一些else if s清理。

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' } 
} 
+0

唉唉你是对的,谢谢! –

-1

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

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

我不明白这个答案与OP的问题有什么关系。他说,基于下拉的条件命中一个,所以它的假设,他的功能'Blah'已经连接。您的代码引用复选框(甚至不包括在问题中)。有一些未定义的引用称为'$ VALOR1'。而且,OP从来没有提到jQuery或在他的问题中标记过它,所以提供严格的jQuery解答可能不是最好的解决方案。 – Santi

相关问题