在选中广播时添加隐藏div的输入所需

时间:2017-08-09 04:50:14

标签: javascript jquery html

我尝试做的是设置隐藏的div,输入取决于检查的无线电输入。

这是逻辑:

  1. 如果选中第一个收音机,则会显示第一个div,我想添加hidden个带有某些值的输入......

  2. 如果选中了第二个收音机,我希望添加所需的输入..

  3. 并且,如果没有检查第二台收音机,则不应该要求......

  4. 我已经尝试过一段时间并尝试了一些效果,但无法按照我的意愿使用它,这是我目前正在尝试使用的代码,抱歉,它搞砸了,失败了......

    所以任何帮助都将不胜感激......

    
    
    /*
            // this code is working but I messed the HTML while trying to get it work with the other code below...
            $(document).ready(function() {
            	$("div.hiddendiv").hide();
            	check();
              
              $("input[name$='name02']").change(check);
            	  function check() {
            		  var test = $("input[name$='name02']:checked").val();
            			$("div.hiddendiv").hide();
            			$("#" + test).show();
            		 }
            }
            */
    
    // The code i'm trying to work with...
    $(function() {
      var radio = $("#closed");
      var hidden = $("#hide");
      hidden.hide();
      checkbox.change(function() {
        if (checkbox.is(':checked')) {
          hidden.show();
          //add required
          $('#name02').prop('required', true);
        } else {
          hidden.hide();
          //clear when hidden checked
          $("#name02").val("");
          //remove required
          $('#name02').prop('required', false);
        }
      });
    });
    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input type="radio" id="closed" value="01"> Closed
    <input type="radio" id="open" value="02"> Open
    
    <div name="01" class="hiddendiv">
      <input name="name01" type="hidden" value="code">
    </div>
    <div name="02" id="hide" class="hiddendiv">
      <input name="name02" type="text" value="">
    </div>
    &#13;
    &#13;
    &#13;

    这是JSFiddle

2 个答案:

答案 0 :(得分:1)

试试这段代码

给出radio button的相同名称,以便它可以作为一个组使用

还将id的{​​{1}}设置为input tag,以便在jquery中将其用作name02

所以它会起作用

&#13;
&#13;
#name02
&#13;
$(function() {
  var radio = $("#closed");
  var hidden = $("#hide");
  hidden.hide();
  $(this).click(function() {
    if ($('#closed').is(':checked')) {
      hidden.show();
      $('#name02').prop('required', true);
    } else {
      hidden.hide();
      //clear when hidden checked
      $("#name02").val("");
      //remove required
      $('#name02').prop('required', false);
    }
  });
});
&#13;
&#13;
&#13;

答案 1 :(得分:0)

部分问题是您需要将单选按钮的<td> <md-slide-toggle [disabled]="!this.isPermission" [(ngModel)]="page.view_permission" (change)="viewChange(page)" style="width: 40px;margin: 0 auto;"></md-slide-toggle> </td> 属性设置为相同的值,否则HTML不会知道它们属于同一组。

我在这里更新了JSfiddle https://jsfiddle.net/hba4d83k/2/

我所做的是将一个更改事件处理程序添加到您的无线电组,然后执行一些条件逻辑来显示/隐藏相关输入。