2017-06-21 32 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

相關問題