我正在编写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>
答案 0 :(得分:2)
当您需要if
执行多行代码时,它们都必须包含在一个块中,如下所示:
if (condition) {
//multiple lines of code
}
按照您的方式执行,无论条件如何,第二个块始终将执行。因为test.value = '-90.4567'
是最后一个,所以它最终会被设置为。
查看此示例,并注意第二个块是如何始终执行的:
if (false) {console.log("true")} {console.log("false")}
&#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
}
});