jQuery 设置选择不选择

标签 jquery

下面是我的 jQuery。每次<select>更改值,它显示另一个 <select><option> 具有相同的值。

$('#mode').on('change', function () {
    var value = $("#mode option:selected").val();
    $('.hide').slideUp('fast');
    $('#' + value).show('slow');
});
.hide {
    display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="">
    <label class="control-label">Mode</label>
    <select class="input-large m-wrap" name="mode" id="mode" required>
        <option value=""></option>
        <option value="general">General Knowledge</option>
        <option value="preparatory">Preparatory Exam</option>
    </select>
</div>
<!-- MODULES -->
<div class=" hide" id="general">
    <br>
    <label class="control-label">Module</label>
    <select class="input-large m-wrap" name="module" id="sub">
        <option value=""></option>
        <option value="Module 1">Module 1</option>
        <option value="Module 2">Module 2</option>
    </select>
</div>
<!-- A1 to Asomething -->
<div class=" hide" id="preparatory">
    <br>
    <label class="control-label">Exam</label>
    <select class="input-large m-wrap" name="exam" id="sub">
        <option value=""></option>
        <option value="A1">A1</option>
        <option value="A2">A2</option>
    </select>
</div>

问题是当我已经在模块中选择了一个选项但随后决定改为考试时。模块中选择的选项保留。

如何将现在隐藏的选择的值设置为无?我添加了id="sub"到两个<select> s 将值设置为 ""使用以下行 $('#sub').val() = "";但似乎不起作用。

编辑:我尝试设置 id="sub"id="sub1"id="sub2"然后使用

$('#sub1').val() = "";
$('#sub2').val() = "";

但还是没有运气。

最佳答案

您可以find() .hide 中的select 元素并设置其val()。试试这个:

$('.hide').slideUp('fast').find('select').val('');

另请注意,您在不同元素上设置了重复的 id 属性 - 这是无效的,因为 id 在页面范围内必须是唯一的。

工作片段:

$('#mode').on('change', function () {
    var value = $("#mode option:selected").val();
    $('.hide').slideUp('fast').find('select').val('');
    $('#' + value).show('slow');
});
.hide {
    display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="">
    <label class="control-label">Mode</label>
    <select class="input-large m-wrap" name="mode" id="mode" required>
        <option value=""></option>
        <option value="general">General Knowledge</option>
        <option value="preparatory">Preparatory Exam</option>
    </select>
</div>
<!-- MODULES -->
<div class=" hide" id="general">
    <br>
    <label class="control-label">Module</label>
    <select class="input-large m-wrap" name="module" id="sub">
        <option value=""></option>
        <option value="Module 1">Module 1</option>
        <option value="Module 2">Module 2</option>
    </select>
</div>
<!-- A1 to Asomething -->
<div class=" hide" id="preparatory">
    <br>
    <label class="control-label">Exam</label>
    <select class="input-large m-wrap" name="exam" id="sub">
        <option value=""></option>
        <option value="A1">A1</option>
        <option value="A2">A2</option>
    </select>
</div>

关于jQuery 设置选择不选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30591471/

相关文章:

javascript - 输入值不会更新

jquery - Twitter Bootstrap 3 轮播在 Firefox 中没有动画

javascript - 使用动态生成的内容创建灯箱?

javascript - 在 jQuery 中获取就绪函数代码下方的元素?

javascript - 在这里使用 switch/case 语句是否可行

javascript - jQuery UI 放置事件在不离开鼠标的情况下触发

Javascript onClick 改变div的背景图片

jquery - 识别子元素的类并删除所有匹配类的属性

javascript - 将 google 图表添加到 vtiger 时出错

c# - C# IHttphandler 上 jQuery 自动完成的随机排序请求