如何为此javascript添加其他条件?

时间:2014-12-12 10:30:27

标签: javascript html

我有一个表单,人们从选择框中选择一周中的某一天。然后,只有在选择星期一或星期三时,才能显示另一个文本字段。 以下代码完美无缺,唯一的问题是我不知道如何在下面的代码中添加其他选项。现在,只有在星期一'时才会弹出文本框。被选中。 我想修改代码,以便在星期一'时弹出文本框。或者周三'被选中。有人可以帮忙吗?

我的javascript:

$(document).ready(function() {

//Hide the field
$("#hide1").hide();

//Show the field
$('#option').change(function() {
    if ($("#option").val() == "Monday") {
        $("#hide1").show();
    }
    else {
        $("#hide1").hide();
    }
});
});

我的HTML:

<select name="option" id="option">
<option value="Monday" selected="selected">Monday</option>
<option value="Tuesday">Tuesday</option>
<option value="Wednesday">Wednesday</option>
<option value="Thursday">Thursday</option>
</select>

4 个答案:

答案 0 :(得分:2)

你可以这样做:

$('#option').change(function() {
    if ($("#option").val() === "Monday" || $("#option").val() === "Wednesday") {
        $("#hide1").show();
    }
    else {
        $("#hide1").hide();
    }
});

但是,在某些时候,您的病情可能会变得有点长(即周一,周三,周六或周日......)

if ($("#option").val() === "Monday" || $("#option").val() === "Wednesday" || $("#option").val() === "Saturday" || $("#option").val() === "Sunday" ) {

这非常详细。你也在多次查询DOM。

而是考虑这样做:

var acceptedDays = [
  "Monday",
  "Wednesday",
  "Friday"
]

$('#option').change(function() {
  var day = $("#option").val(); // query the DOM once
  if (acceptedDays.indexOf(day) !== -1){
    $("#hide1").show();
  } else {
    $("#hide1").hide();
  }
}); 

此外,在检查平等时使用tripple equals是一个好习惯。

答案 1 :(得分:1)

使用此更改事件。

$('#option').change(function() {
    if ($("#option").val() == "Monday" || $("#option").val() == "Wednesday") {
        $("#hide1").show();
    }
    else {
        $("#hide1").hide();
    }
});

答案 2 :(得分:0)

为了将来的可维护性,您最好使用switch/case

switch($("#option").val()) {
    case "Monday":
        // do something on Monday
        break;
    case "Tuesday":
        // do other things on Tuesday
        break;
    case "Wednesday":
    case "Thursday":
        // you can also combine two cases together
        // in this particular case it equals the following if statement
        // if(val === "Wednesday" || val === "Thursday") {...}
        // do things on Wednesday and Thursday
        break;
}

看看它有多可维护?它可以帮助你摆脱一堆else if,除非你仍然喜欢这种风格:

if(val === "Monday") {
    // something
} else if(val === "Tuesday") {
    // other things
} else if(val === "Wednesday" || val === "Thursday") {
    // oh my god it's boring
} else if(val === "Friday") {
    // who knows...
}

考虑一下,如果你正在制作一个日历,你有30 else if左右,那是怎么回事?

答案 3 :(得分:0)

Click on this link 
i have update your code on jsfiddle.

Visit 

http://jsfiddle.net/erkunalpatel/2wtkod18/4/