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