首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DropDownListFor - MVC上使用javascript将DropDownListFor值更改为空?

如何在DropDownListFor - MVC上使用javascript将DropDownListFor值更改为空?
EN

Stack Overflow用户
提问于 2017-07-10 14:03:32
回答 1查看 59关注 0票数 0

我有多个DropDownListFor分配给相同的变量,这些变量是隐藏的,只有当某个无线电按钮用javascript激活时才可见。问题是,如果您更改了一个DropDownListFor的值,然后更改了无线电按钮,那么以前的DropDownListFor的值仍然是活动的,即使是这个值也是不可见的,而且当我提交时,前面的DropDownListFor值就是被传递的值。

有没有一种方法可以在不重新加载页面的情况下将所有DropDownListFor的值返回到javascript中的默认'null‘?

查看代码:

代码语言:javascript
复制
<h3>Tipo de Infraestrutura:</h3>

   <input type="radio" name="selectedLinhaType" id="150KV"/> 150kV <br>
   <input type="radio" name="selectedLinhaType" id="220KV"/> 220KV <br>
   <input type="radio" name="selectedLinhaType" id="400KV"/> 440KV <br>

    <div class ="infobox" id="is150KV">
        <fieldset>
            <h3>Linha 150KV:</h3>
            <p>@Html.DropDownListFor(m => m.SelectedLinha.NumLinha, ViewData["ListLinhas150"] as List<SelectListItem>, "")</p>
        </fieldset>
    </div>
    <div class ="infobox" id="is220KV">
        <fieldset>
            <h3>Linha 220KV:</h3>
            <p>@Html.DropDownListFor(m => m.SelectedLinha.NumLinha, ViewData["ListLinhas220"] as List<SelectListItem>, "")</p>
        </fieldset>
    </div>
    <div class="infobox" id="is400KV">
        <fieldset>
            <h3>Linha 400KV</h3>
            <p>@Html.DropDownListFor(m => m.SelectedLinha.NumLinha, ViewData["ListLinhas400"] as List<SelectListItem>, "")</p>
        </fieldset>
    </div>

Javascript:

代码语言:javascript
复制
    <script type="text/javascript">
    $(document).ready(function () {
        $('#is150KV').hide(); $('#is220KV').hide(); $('#is400KV').hide();
        $('#150KV').change(function () {
            $('#is220KV').hide(); $('#is400KV').hide();
            $('#is150KV').show();
        });

        $('#220KV').change(function () {
            $('#is150KV').hide(); $('#is400KV').hide();
            $('#is220KV').show();
        });

        $('#400KV').change(function () {
            $('#is150KV').hide(); $('#is220KV').hide();
            $('#is400KV').show();
        });
    })
    </script>

编辑:修正了每个DropDownListFor中添加的ids,并在javascript上禁用/启用了‘..attr’。“.prop”也应该有效,但我没有测试它。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-10 14:12:41

与其简单地隐藏下拉列表,不如禁用它。禁用的表单元素从未提交过。

代码语言:javascript
复制
$('#is220KV').attr('disabled', true).hide();

相反:

代码语言:javascript
复制
$('#is220KV').attr('disabled', false).show();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45014126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档