首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取选中的单选按钮并隐藏Asp.net MVC中的输入(可能使用jquery?)

获取选中的单选按钮并隐藏Asp.net MVC中的输入(可能使用jquery?)
EN

Stack Overflow用户
提问于 2018-07-07 04:35:47
回答 3查看 33关注 0票数 0

这是我正在查看的实际代码,jquery代码似乎不起作用。

我已经尝试了一些东西,比如js/jquery,在代码上使用不同的方法(主要是尝试使用两种语言的不同语法),但都还没有奏效。我希望当CbUsuario得到检查时,Cnpj输入被隐藏,如果需要,我可以将html输入更改为剃刀输入。

请记住,我在javascript/jquery和mvc方面也是个新手。

代码语言:javascript
复制
@model Collab.Domain.Entities.Usuario

@{
    ViewBag.Title = "Registrar";
}

<div class="limiter">
    <div class="container-form">
        <div class="wrap-login">

        @using (Html.BeginForm())
        {
            @Html.AntiForgeryToken()

            <span class="cadastro-form-title">
                Cadastro
            </span>

            <p>@ViewBag.ErrorMessage</p>

            <div class="wrap-input">
                <input class="input" type="text" name="Nome">
                <span class="focus-input" data-placeholder="Nome"></span>
            </div>

            <div class="wrap-input">
                <input class="input" type="text" name="CPF">
                <span class="focus-input" data-placeholder="CPF"></span>
            </div>

            <div class="wrap-input" id="Cnpj">
                <input class="input" type="text" name="Cnpj" id="Cnpj">
                <span class="focus-input" data-placeholder="CNPJ" id="Cnpj"></span>
            </div>

            <div class="wrap-input validate-input" data-validate="Insira um email válido">
                <input class="input" type="text" name="Email">
                <span class="focus-input" data-placeholder="E-mail"></span>
            </div>

            <div class="wrap-input validate-input" data-validate="Preencha o campo senha">
                <span class="btn-show-pass">
                    <i class="zmdi zmdi-eye"></i>
                </span>
                <input class="input" type="password" name="Senha">
                <span class="focus-input" data-placeholder="Senha"></span>
            </div>

            <span>Tipo da conta:</span>

            <div>
                <input type="radio" name="Cb" value="Usuario" id="CbUsuario"> Usuario<br>
                <input type="radio" name="Cb" value="Pesquisador" id="CbPesquisador"> Pesquisador<br>
                <input type="radio" name="Cb" value="Investidor" id="CbInvestidor"> Investidor
            </div>

            <div class="container-form-btn">
                <div class="wrap-form-btn">
                    <div class="form-bgbtn"></div>
                    <button class="form-btn">
                        Cadastrar
                    </button>
                </div>
            </div>




        }

    </div>
</div>

代码语言:javascript
复制
@section Scripts {
    @Scripts.Render("~/Scripts/jqueryval")
    @Scripts.Render("~/Scripts/jquery-1.10.2.js")
    @Scripts.Render("~/Scripts/jquery-1.10.2.min.js")
    @Scripts.Render("~/Scripts/jquery.validate.js")
    @Scripts.Render("~/Scripts/jquery.validate.min.js")

    <script type="text/javascript">
        $(document).ready(function () {
            $("#Cb").change(function () {
                var checkedradio = $('[name="Cb"]:radio:checked').val();
                if (checkedradio.val() == "Usuario") {
                    $("#Cnpj").hide();
                }
            });
        });
    </script>

}
EN

回答 3

Stack Overflow用户

发布于 2018-07-07 05:00:53

您已经非常接近了,但要使其正常工作,需要进行一些调整。首先,当您正在寻找名称选择器时,您的更改事件是从ID选择器开始工作的。您已经在change回调中获得了它,所以重用它将使事件正确触发:

$("#Cb").change()成为$("[name=Cb]:radio").change()

接下来,您将获取选中的单选按钮的值,然后尝试对该字符串值调用.val(),这将抛出一个错误。如果您将if块更新为只比较上一行的值检查结果,则应该是好的。更改后,它应该如下所示:

代码语言:javascript
复制
$("[name=Cb]:radio").change(function() {
    var checkedValue = $('[name="Cb"]:radio:checked').val();
    if (checkedValue == "Usuario") {
      $("#Cnpj").hide();
    } else {
      $("#Cnpj").show();
    }
});

我添加了一个else块,这样选择其他单选按钮就会显示隐藏的文本框,所以在选中Usuario单选按钮之后,它也不会永远消失。

票数 1
EN

Stack Overflow用户

发布于 2018-07-07 05:21:59

尝尝这个

代码语言:javascript
复制
    <input type="radio" class="radio" name="Cb" value="Usuario" id="CbUsuario"> Usuario<br>
    <input type="radio" class="radio" name="Cb" value="Pesquisador" id="CbPesquisador"> Pesquisador<br>
    <input type="radio" class="radio" name="Cb" value="Investidor" id="CbInvestidor"> Investidor

和JQuery

代码语言:javascript
复制
$(document).ready(function () {
            $(".radio").change(function () {
                var checkedradio = $('[name="Cb"]:radio:checked').val();
                if (checkedradio == "Usuario") {
                    $("#Cnpj").hide();
                }
                else {
                    $("#Cnpj").show();
                }
      });
  });
票数 0
EN

Stack Overflow用户

发布于 2018-07-07 05:29:52

代码语言:javascript
复制
 $(document).ready(function () { 
   $("input[name='Cb']").change(function(e){   
      if($(this).val() == 'Usuario') {
          $('#Cnpj').css('visibility','hidden');
      } else {
          $('#Cnpj').css('visibility','visible');
      }

  }); 
 });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div data-cid="Cnpj" class="wrap-input" id="Cnpj">
                <input class="input" type="text" name="Cnpj" id="Cnpj">
                <span class="focus-input" data-placeholder="CNPJ" id="Cnpj"></span>
            </div>
            
<div>
                <input data-cid="Usuario" type="radio" name="Cb" value="Usuario" id="CbUsuario"> Usuario<br>
                <input type="radio" name="Cb" value="Pesquisador" id="CbPesquisador"> Pesquisador<br>
                <input type="radio" name="Cb" value="Investidor" id="CbInvestidor"> Investidor
            </div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51217275

复制
相关文章

相似问题

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