【问题标题】:Yii2: How to disable radio buttonYii2:如何禁用单选按钮
【发布时间】:2016-01-14 11:25:52
【问题描述】:
<?php  echo $form->field($model, 'status')->radioButtonGroup($model->getStatusList(), ['disabledItems'=>['APPROVED','DIGITAL','CDP']], 
    [
    'class' => 'btn-group-sm',
    'itemOptions' => ['labelOptions' => ['class' => 'btn btn-warning']]
    ]); 
    ?>

我想禁用当前选中的所有以前的单选按钮。 正如我在图像状态中显示的那样,“已批准”、“数字”、“CDP”被禁用,因为选择了状态打印。我已将这三个状态置于禁用功能中,但如何使用 jQuery 来实现。

PS- 使用 Yii2

HTML 代码-

<div class="form-group field-status-status required">
    <label class="control-label" for="status-status">Status</label>
    <input type="hidden" name="Status[status]" value="">
    <div id="status-status" class="btn-group" data-toggle="buttons">
        <label class="btn btn-default disabled">
            <input type="radio" name="Status[status]" value="APPROVED" disabled> Approved</label>
        <label class="btn btn-default disabled">
            <input type="radio" name="Status[status]" value="DIGITAL" disabled> Digital</label>
        <label class="btn btn-default disabled">
            <input type="radio" name="Status[status]" value="CDP" disabled> CDP</label>
        <label class="btn btn-default">
            <input type="radio" name="Status[status]" value="PRINT"> Print</label>
        <label class="btn btn-default">
            <input type="radio" name="Status[status]" value="OTHERPROCESS"> OtherProcess</label>
        <label class="btn btn-default">
            <input type="radio" name="Status[status]" value="PACKING"> Packing</label>
        <label class="btn btn-default">
            <input type="radio" name="Status[status]" value="DISPATCH"> Dispatch</label>
    </div>

【问题讨论】:

  • 更新问题

标签: javascript php jquery yii2 radiobuttonlist


【解决方案1】:

您可以使用prop 禁用单选按钮。

$(':radio:checked').closest('label').prevAll('label :radio').prop('disabled', true);

演示:

$(':radio').on('change', function() {
  $(':radio:checked').closest('label').prevAll('label').addClass('disabled').children(':radio').prop('disabled', true);
}).trigger('change');
.disabled {
  color: gray;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="form-group field-status-status required">
  <label class="control-label" for="status-status">Status</label>
  <input type="hidden" name="Status[status]" value="">
  <div id="status-status" class="btn-group" data-toggle="buttons">
    <label class="btn btn-default">
      <input type="radio" name="Status[status]" value="APPROVED">Approved</label>
    <label class="btn btn-default">
      <input type="radio" name="Status[status]" value="DIGITAL">Digital</label>
    <label class="btn btn-default">
      <input type="radio" name="Status[status]" value="CDP" checked>CDP</label>
    <label class="btn btn-default">
      <input type="radio" name="Status[status]" value="PRINT">Print</label>
    <label class="btn btn-default">
      <input type="radio" name="Status[status]" value="OTHERPROCESS">OtherProcess</label>
    <label class="btn btn-default">
      <input type="radio" name="Status[status]" value="PACKING">Packing</label>
    <label class="btn btn-default">
      <input type="radio" name="Status[status]" value="DISPATCH">Dispatch</label>
  </div>

【讨论】:

  • 你能帮我写完整的脚本吗,其实这个页面是用来更新状态的。一旦选择了一个状态,用户就不应选择以前的状态。就像我在图片中显示的那样,如果选择了“打印”,前 3 个状态应该会自动禁用。
  • 如果预先选择了值单选按钮,它可以工作吗?
  • 没有得到预期的输出.. :(什么是控制台日志我应该放什么值而不是 fdsafdsa ?
  • 可能是因为这个控制台日志?值应该在 fdsafdsa 的地方改变
  • ` registerJs($script); ?> `这就是我在表格末尾的内容
猜你喜欢
  • 2016-01-20
  • 2016-01-18
  • 2017-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 2018-08-28
  • 2012-04-05
相关资源
最近更新 更多