【问题标题】:I need to enable form (it is disabled on page load) after checkbox checked选中复选框后,我需要启用表单(在页面加载时禁用)
【发布时间】:2016-10-03 02:17:52
【问题描述】:

我在这里需要你的帮助,因为我不知道 javascript 或 jquery 库,我想我肯定必须在我的项目中使用它们。页面加载时我有一个禁用的表单,我想在我检查时启用复选框。我尝试了很多,但我没有找到任何解决方案..

这是页面加载时的“禁用”代码:

$(document).ready(function (e) {
  $("#form1 *").prop("disabled", "disabled");
});

复选框是:

<input type="checkbox" id="checkbox" name="opt[]" value="'.$points.'">

如果您有任何想法,请告诉我!

一枪但..没有结果是:

document.getElementById('checkbox').onchange = function() {
  document.getElementById('eksargirwsh').disabled = this.checked;
};

表格代码:

 <form method="post" id="eksargirwsh" action="update_points_test2.php">

           <div class="col-lg-4">
               <div class="ibox float-e-margins">
                    <div class="ibox-title">
                                    <h5>Form1</h5>

                                </div>
                                <div class="ibox-content">

echo '

                                    <div>
                                        <div class="feed-activity-list"><div style="border: 0.5px solid green; border-right-style:none;" class="input-group m-b"><span class="input-group-addon"> 
                                                <input type="checkbox" id="checkbox" name="opt[]" value="'.$points.'"></span>
                                                <input type="hidden" name="opt2[]" value="'.$row_select4['id'].'">


                                          <div class="feed-element">
                                                <a href="profile.html" class="pull-left">
                                            <img alt="image" class="img-circle" src="'. $row_select4['image_url']. '">
                                                </a>
                                          <div class="media-body ">
                                         <div class="ibox-tools">
                                                        <span class="label label-primary">ΔΙΑΘΕΣΙΜΟ</span><br><br>
                                                        <span class="label label-warning-light pull-right"><strong>'  .$row_select4['points'].  '</strong> Πόντοι</span>
                                                    </div>
                                                    <strong>'  .$row_select4['title'].  ' </strong> '   .$row_select4['description'].  ' <br>
                                                    <small class="text-muted">Διάρκεια: <strong>'  .$row_select4['start_date'].  ' - '   .$row_select4['end_date'].  ' </strong></small>
                                                    <div class="well">
                                                        '  .$row_select4['description'].  '
                                                    </div>
                                                  </div>
                                                </div>
                                            </div>

                                       </div>'  ;

 <button type="submit" id="submit" class="btn btn-w-m btn-primary">SUBMIT</button> 
                          </form>

【问题讨论】:

  • id="checkbox" 在表单内吗?
  • 显示您目前尝试过的更改禁用道具的代码,以便我们为您提供帮助。
  • 是的!它在表格里面!
  • 如果它在表单内,复选框将不起作用,因为它也会由于父表单而被禁用。而是采用对所有元素使用一些通用类来禁用字段的方法。请分享您的html代码
  • 表单在 php echo 中导致从数据库中获取数据

标签: javascript jquery forms checkbox


【解决方案1】:

使用这个。您可以选择不是#checkbox 的元素,然后首先禁用它们。然后,添加一个函数到checkbox更改,如果选中则启用。

$(document).ready(function (e) {
  $("#form1 *:not(#checkbox)").prop("disabled", true);
  $("#form1").addClass('disabled');
  $('#checkbox').change(function(){
    $("#form1 *:not(#checkbox)").prop("disabled", !this.checked);
    $("#form1").toggleClass('disabled', !this.checked);
  })
});
#form1{
    opacity: 1;
}
#form1.disabled{
    opacity: 0.2;
}

【讨论】:

  • 工作!当表单被禁用时是否可以设置一些不透明度?
  • @platanas20 在此类事件的表单中添加一个类。然后将css添加到类中。如果它不适用于 form 元素,请尝试任何父 div,或提供适当的 css 以形成
  • 问题是,如果第一个复选框没有被选中,我无法提交表单。我不希望这样,因为用户选择了哪个复选框将被选中,而他无法选择第一个
【解决方案2】:

如果是则复选框的形式相同

除此之外,您必须禁用整个页面

$(document).ready(function() {
       $('form :not([type=checkbox])').prop('disabled',true);

});

将此功能放在复选框中

 $(":checkbox").click(function(){
    if (this.checked) {
       $('#form :not([type=checkbox])').prop('disabled',false);
    }
    else{
     $('#form :not([type=checkbox])').prop('disabled',true);
    }
}) ;

对于用户要求,下面创建小提琴是链接

JSFiddle

【讨论】:

  • 部分功能不起作用!我已将onchange="enable_form()" 放在复选框的输入中,但选中复选框时表单未启用
  • $('form').prop('disabled', false);试试这个而不是 $("form").removeAttr("disabled");
  • 并尝试使用 onclick 为什么 onclick 优于 onchange 的两个原因。 Internet Explorer 仅在复选框失去焦点 (onblur) 时触发 onchange 事件。所以onclick更像是一个跨浏览器的解决方案。 onchange 仅在元素失去焦点后发生。(您不会看到差异,因为您正在调用警报并失去对每个更改的关注)。 MDC 上的伪代码几乎解释了 element.onchange 的实现。
  • 再次相同!表单未启用!我使用这个:function enable_form() { if (this.checked) { $('#form').prop('disabled', false); } else { $("#form :not([type=checkbox])").prop("disabled", true); } }onclick="enable_form()"
  • 你使用 id #form 是正确的 id 你能帮我一个忙把它放在小提琴上我会做剩下的
猜你喜欢
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
  • 2020-08-27
  • 1970-01-01
  • 1970-01-01
  • 2016-10-19
  • 1970-01-01
相关资源
最近更新 更多