如果JavaScript中的语句用于从选择输入获取值

时间:2015-02-17 06:52:25

标签: javascript if-statement

我遇到了这个问题。首先,这是代码:

的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>

问题是,它只能选择第一个条件。如果我点击其他选项,结果仍然是第一个条件。例如:如果我选择/单击“A”或“B”,否则结果始终为第一个条件。 但是,如果我只是传递select的值,它是有效的,但不是当我给它IF语句时。

我只是从本教程中看到如果JavaScript使用'='而不是'=='在w3schools中使用IF语句: http://www.w3schools.com/js/js_if_else.asp

我希望有任何回复。 谢谢:))

4 个答案:

答案 0 :(得分:2)

这不是if语句的语法

你应该这样做:

if(isi == 'A'){
    // your code
}

这称为比较操作:“==”

答案 1 :(得分:2)

如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);
}

答案 2 :(得分:1)

这是因为你使用赋值运算符(=)而不是相等运算符(==),我通常会建议使用标识运算符(===)。 / p>

if子句必须返回boolean值,赋值不返回。

标识(===)运算符的行为与相等(==)运算符的行为相同,但不进行类型转换,并且类型必须相同才能被视为相等。

this Stack Overflow answer

对此进行了详细介绍

答案 3 :(得分:0)

您正在使用单=,您需要使用==进行相等