我遇到了这个问题。首先,这是代码:
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.");
}
}
<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>
问题是,它只能选择第一个条件。如果我点击其他选项,结果仍然是第一个条件。例如:如果我选择/单击“A”或“B”,否则结果始终为第一个条件。 但是,如果我只是传递select的值,它是有效的,但不是当我给它IF语句时。
我只是从本教程中看到如果JavaScript使用'='而不是'=='在w3schools中使用IF语句: http://www.w3schools.com/js/js_if_else.asp
我希望有任何回复。 谢谢:))
答案 0 :(得分:2)
这不是if语句的语法
你应该这样做:
if(isi == 'A'){
// your code
}
这称为比较操作:“==”
答案 1 :(得分:2)
==
而不是赋值运算符=
。
在这种情况下考虑使用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);
}
答案 2 :(得分:1)
这是因为你使用赋值运算符(=
)而不是相等运算符(==
),我通常会建议使用标识运算符(===
)。 / p>
if子句必须返回boolean
值,赋值不返回。
标识(===
)运算符的行为与相等(==
)运算符的行为相同,但不进行类型转换,并且类型必须相同才能被视为相等。
答案 3 :(得分:0)
您正在使用单=
,您需要使用==
进行相等