我想显示并隐藏一个复选框(sem_1_ma_english),具体取决于Dropdown(course_english)列表的值。
当我从DROPDOWN列表中选择一个值时,应该显示CHECKBOX,否则不会显示。
Html结构:用于Checkbox
<div class="form-row">
<label for="sem_1_ma_english">
Semester I – Subjects for M. A. English
<span class="helptext"></span>
</label>
<label for="sem_1_ma_english-poetry">
<input id="sem_1_ma_english-poetry" class="" type="checkbox" checked="yes" value="Poetry" name="sem_1_ma_english[]">
Poetry
</label>
<label for="sem_1_ma_english-drama">
<input id="sem_1_ma_english-drama" class="" type="checkbox" checked="yes" value="Drama" name="sem_1_ma_english[]">
Drama
</label>
<label for="sem_1_ma_english-fiction">
<input id="sem_1_ma_english-fiction" class="" type="checkbox" checked="yes" value="Fiction" name="sem_1_ma_english[]">
Fiction
</label>
<label for="sem_1_ma_english-prose">
<input id="sem_1_ma_english-prose" class="" type="checkbox" checked="yes" value="Prose" name="sem_1_ma_english[]">
Prose
</label>
</div>
所以我用这段代码来解决问题
$("#course_english").change(function() {
if ($("#course_english").val() == "MA English") {
$("#sem_1_ma_english").parent().show();
} else {
$("#sem_1_ma_english").parent().hide();
$("#sem_1_ma_english").val('');
}
});
但遗憾的是它没有用。
答案 0 :(得分:1)
对于您的问题,请查看此jsbin:http://jsbin.com/ujuxiy/1/edit
如果这是你的html:
<select id="course_english" class="" name="course_english">
<option value="">--Select One--</option>
<option value="MA English">MA English</option>
<option value="B. A. (Hons.) with Mass Communication">B.A. (Hons.) with Mass Communication</option>
<option value="M. A. (English)">M. A. (English)</option> <option value="M. Phil.">M. Phil.</option>
</select>
<div class="form-row">
<label for="sem_1_ma_english">
Semester I – Subjects for M. A. English
<span class="helptext"></span>
</label>
<label for="sem_1_ma_english-poetry">
<input id="sem_1_ma_english-poetry" class="sem_1_ma_english" type="checkbox" checked="yes" value="Poetry" name="sem_1_ma_english[]">
Poetry
</label>
<label for="sem_1_ma_english-drama">
<input id="sem_1_ma_english-drama" class="sem_1_ma_english" type="checkbox" checked="yes" value="Drama" name="sem_1_ma_english[]">
Drama
</label>
<label for="sem_1_ma_english-fiction">
<input id="sem_1_ma_english-fiction" class="sem_1_ma_english"
type="checkbox" checked="yes" value="Fiction" name="sem_1_ma_english[]">
Fiction
</label>
<label for="sem_1_ma_english-prose">
<input id="sem_1_ma_english-prose" class="sem_1_ma_english" type="checkbox" checked="yes" value="Prose" name="sem_1_ma_english[]">
Prose
</label></div>
然后这应该是你的jquery:
$(function(){
$(".form-row").hide();
$("#course_english").change(function() {
if ($("#course_english").val() == "MA English") {
$(".form-row").show();
} else {
$(".form-row").hide();
}
});
});
答案 1 :(得分:0)
试试这个 的 HTML 强>
<div class="form-row">
<label for="sem_1_ma_english">
Semester I – Subjects for M. A. English
<span class="helptext"></span>
</label>
<label for="sem_1_ma_english-poetry">
<input id="sem_1_ma_english-poetry" class="sem_1_ma_english" type="checkbox" checked="yes" value="Poetry" name="sem_1_ma_english[]">
Poetry
</label>
<label for="sem_1_ma_english-drama">
<input id="sem_1_ma_english-drama" class="sem_1_ma_english" type="checkbox" checked="yes" value="Drama" name="sem_1_ma_english[]">
Drama
</label>
<label for="sem_1_ma_english-fiction">
<input id="sem_1_ma_english-fiction" class="sem_1_ma_english"
type="checkbox" checked="yes" value="Fiction" name="sem_1_ma_english[]">
Fiction
</label>
<label for="sem_1_ma_english-prose">
<input id="sem_1_ma_english-prose" class="sem_1_ma_english" type="checkbox"
checked="yes" value="Prose"
name="sem_1_ma_english[]">
Prose
</label>
和jQuery代码应该是这样的
$("#course_english").change(function() {
if ($("#course_english").val() == "MA English") {
$(".sem_1_ma_english").parent().show();
} else {
$(".sem_1_ma_english").parent().hide();
$(".sem_1_ma_english").val('');
}
});
试试这个,这对我有用,并为你工作....
答案 2 :(得分:0)
您是否尝试过使用'toggle()'方法?我更喜欢这个交替'显示'和'隐藏'。此方法适用于点击事件,但我没有尝试选择值。
e.g。
$(".sem_1_ma_english").parent().show(); //Shows initially
if ($("#course_english").val() == "MA English") {
$(".sem_1_ma_english").parent().toggle();
};
});