JavaScript 中的 If 语句用于从 Select 输入中获取值
If Statement in JavaScript for Getting Value from Select Input
我被这个问题困住了。首先,这是代码:
JavaScript
function PilihKeterangan(isi)
{
if (isi = 'A') {
$('#keterangan').val("Sangat Baik : sangat aktif mengikuti latihan dan kegiatan ...");
} else if (isi = "B") {
$('#keterangan').val("Baik : aktif mengikuti latihan dan kegiatan ...");
} else if (isi = 'C') {
$('#keterangan').val("Cukup : cukup aktif mengikuti latihan dan kegiatan Kepramukaan ...");
} else if (isi = 'X') {
$('#keterangan').val("Kegiatan ini tidak dipilih oleh siswa / bukan menjadi pilihan siswa");
} else {
$('#keterangan').val("Pilihlah predikat A/B/C/X.");
}
}
HTML
<select class="form-control" name="PREDIKAT_EKSTRA_UTS" onchange="PilihKeterangan(this.value)">
<option selected value="">- Pilih -</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="X">X</option>
</select>
问题是,它只能满足select第一个条件。如果我点击其他选项,结果仍然是第一个条件。在示例中:如果 i select/click 'A' 或 'B' 或者 one 结果始终是第一个条件。
但是如果我只是传递 select 的值,它是有效的,但当我给它 IF 语句时就不行了。
如果 JavaScript 使用“=”而不是“==”,我只是从本教程中了解如何在 w3schools 中使用 IF 语句:
http://www.w3schools.com/js/js_if_else.asp
希望有回复。
谢谢:)
这不是 if 语句的语法
你应该这样做:
if(isi == 'A'){
// your code
}
这称为比较运算符:“==”
您正在使用单个 =
您需要使用一个 ==
来获得相等性
如 hitesh upadhyay 和 Oliver 所述,您应该使用相等运算符 ==
而不是赋值运算符 =
.
考虑在这种情况下使用 switch 来生成更简洁的代码。
function PilihKeterangan(isi)
{
var msg = "";
switch(isi){
case 'A':
msg = "Sangat Baik : sangat aktif mengikuti latihan dan kegiatan ...";
break;
case 'B':
msg = "Baik : aktif mengikuti latihan dan kegiatan ...";
break;
case 'C':
msg = "Cukup : cukup aktif mengikuti latihan dan kegiatan Kepramukaan ...");
break;
case 'X':
msg = "Kegiatan ini tidak dipilih oleh siswa / bukan menjadi pilihan siswa";
break;
default:
msg = "Pilihlah predikat A/B/C/X.";
break;
}
$('#keterangan').val(msg);
}
这是因为您使用的是赋值运算符 (=
) 而不是相等运算符 (==
),我通常建议使用恒等运算符 (===
) .
if 子句必须 return 一个 boolean
值,赋值则不需要。
标识 (===
) 运算符的行为与相等 (==
) 运算符的行为相同,只是没有进行类型转换,并且类型必须相同才能被视为相等。
this Stack Overflow answer
对此进行了广泛介绍
我被这个问题困住了。首先,这是代码:
JavaScript
function PilihKeterangan(isi)
{
if (isi = 'A') {
$('#keterangan').val("Sangat Baik : sangat aktif mengikuti latihan dan kegiatan ...");
} else if (isi = "B") {
$('#keterangan').val("Baik : aktif mengikuti latihan dan kegiatan ...");
} else if (isi = 'C') {
$('#keterangan').val("Cukup : cukup aktif mengikuti latihan dan kegiatan Kepramukaan ...");
} else if (isi = 'X') {
$('#keterangan').val("Kegiatan ini tidak dipilih oleh siswa / bukan menjadi pilihan siswa");
} else {
$('#keterangan').val("Pilihlah predikat A/B/C/X.");
}
}
HTML
<select class="form-control" name="PREDIKAT_EKSTRA_UTS" onchange="PilihKeterangan(this.value)">
<option selected value="">- Pilih -</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="X">X</option>
</select>
问题是,它只能满足select第一个条件。如果我点击其他选项,结果仍然是第一个条件。在示例中:如果 i select/click 'A' 或 'B' 或者 one 结果始终是第一个条件。 但是如果我只是传递 select 的值,它是有效的,但当我给它 IF 语句时就不行了。
如果 JavaScript 使用“=”而不是“==”,我只是从本教程中了解如何在 w3schools 中使用 IF 语句: http://www.w3schools.com/js/js_if_else.asp
希望有回复。 谢谢:)
这不是 if 语句的语法
你应该这样做:
if(isi == 'A'){
// your code
}
这称为比较运算符:“==”
您正在使用单个 =
您需要使用一个 ==
来获得相等性
如 hitesh upadhyay 和 Oliver 所述,您应该使用相等运算符 ==
而不是赋值运算符 =
.
考虑在这种情况下使用 switch 来生成更简洁的代码。
function PilihKeterangan(isi)
{
var msg = "";
switch(isi){
case 'A':
msg = "Sangat Baik : sangat aktif mengikuti latihan dan kegiatan ...";
break;
case 'B':
msg = "Baik : aktif mengikuti latihan dan kegiatan ...";
break;
case 'C':
msg = "Cukup : cukup aktif mengikuti latihan dan kegiatan Kepramukaan ...");
break;
case 'X':
msg = "Kegiatan ini tidak dipilih oleh siswa / bukan menjadi pilihan siswa";
break;
default:
msg = "Pilihlah predikat A/B/C/X.";
break;
}
$('#keterangan').val(msg);
}
这是因为您使用的是赋值运算符 (=
) 而不是相等运算符 (==
),我通常建议使用恒等运算符 (===
) .
if 子句必须 return 一个 boolean
值,赋值则不需要。
标识 (===
) 运算符的行为与相等 (==
) 运算符的行为相同,只是没有进行类型转换,并且类型必须相同才能被视为相等。
this Stack Overflow answer
对此进行了广泛介绍