【问题标题】:Html input radio with multiple array name attribute validation failed具有多个数组名称属性验证的 Html 输入单选失败
【发布时间】:2018-03-15 07:35:55
【问题描述】:

我有以下单选按钮

<div class="col-md-12 clearfix multi-wrap">
  <div class="radio-inline"><label for="">Academics</label></div>
  <div class="radio-inline">
    <label class="radio-label" style="background: rgb(221, 221, 221);">1
      <input type="radio" name="criteria_order[academics][]" value="1" required="" aria-required="true" class="text-danger">
    </label>
  </div>
  <div class="radio-inline">
    <label class="radio-label" style="background: rgb(221, 221, 221);">2
      <input type="radio" name="criteria_order[academics][]" value="2" required="" aria-required="true" class="text-danger">
    </label>
  </div>
  <div class="radio-inline">
    <label class="radio-label" style="background: rgb(221, 221, 221);">3
      <input type="radio" name="criteria_order[academics][]" value="3" required="" aria-required="true" class="text-danger">
    </label>
  </div>
  <div class="radio-inline">
    <label class="radio-label" style="background: rgb(221, 221, 221);">4
      <input type="radio" name="criteria_order[academics][]" value="4" required="" aria-required="true" class="text-danger">
    </label>
  </div>
  <div class="radio-inline">
    <label class="radio-label" style="background: rgb(221, 221, 221);">5
      <input type="radio" name="criteria_order[academics][]" value="5" required="" aria-required="true" class="text-danger">
    </label>
  </div>
  <div class="radio-inline">
    <label class="radio-label" style="background: rgb(221, 221, 221);">6
      <input type="radio" name="criteria_order[academics][]" value="6" required="" aria-required="true" class="text-danger">
    </label>
  </div>
  <div class="radio-inline">
    <label class="radio-label" style="background: rgb(221, 221, 221);">7
      <input type="radio" name="criteria_order[academics][]" value="7" required="" aria-required="true" class="text-danger">
    </label>
  </div>
</div>

点击后,我通过 JQuery 将选中的属性设置为 true,如下所示

$('.radio-label').click(function(){

    $(this).closest('.multi-wrap').find('.radio-label').removeClass('active');

    $(this).closest('.multi-wrap').find('.radio-label input[type="radio"]').attr('checked',false);

    $(this).addClass('active');

    $(this).find('input[type="radio"]').attr('checked',true);
  });

JQuery 之后的 HTML 如下:

 <input type="radio" name="criteria_order[academics][]" value="2" required="" aria-required="true" class="text-danger" checked="checked" aria-invalid="true">

JQuery 验证未验证。它仍然显示该字段是必需的。

注意:我注意到检查的属性出现了,但是当我查看它时它实际上在页面上不可见。

【问题讨论】:

  • 你能把jQuery代码发给你吗?
  • 编辑了我的问题。请立即查看
  • 验证码在哪里
  • 你为什么要从你的JS设置输入.checked?这不是通过标准标签/输入元素点击行为自动发生的吗?话虽如此,如果您出于某种原因确实需要从 JS 设置它,请使用.prop(),而不是.attr(),您要更新当前属性值而不是属性。
  • 我为了用户体验而隐藏了单选按钮。如果你看到我的 jquery 你就会明白。单击收音机标签时,我正在通过 JQuery 检查收音机。

标签: jquery html input radio-button radiobuttonlist


【解决方案1】:

尝试在.attr()函数后添加.change()

【讨论】:

    猜你喜欢
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 1970-01-01
    • 2017-11-06
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多