通过会话访问时,我的选择框将被禁用

时间:2016-10-08 09:11:03

标签: javascript jquery laravel

我正在使用Laravel框架和一些jquery代码。

问题是,当我提交数据时,它会成功保存在会话中。当我回到上一页时,我的选择框显示所选值但禁用了选择框。我完全糊涂了。我该怎么办?

这是我的HTML代码: -

<div class="one-row">
  <?php foreach ($services as $key => $allservices){ 
    if($key <= 3){  
      if(!empty($data['services'])){
        if(in_array($allservices['id'],$data['services'])) {
          $checked = "checked";
        } else {
          $checked = "";
        }
      } else {
        $checked = "";
      } 
    ?>
    <div class="div_img_part-2"> 
      <span class="img_part_class-2">
        <img src="{{ 
            asset('images/ServiceImages/'. $allservices['image'])}}"></span>
        <span class="text_part_class-2">
        <span class="check-box">
        <input type="checkbox" name="services[]" value="
          <?php echo $allservices['id']; ?>" <?= $checked; ?>><?php echo $allservices['name']; ?></span>
      </span>
      <select name="services[<?php echo $allservices['name'];?>]"class="selectpicker">
        <option value="">Select Your Sevice</option>
        <option value="Salon" <?php if(!empty($data['services'][$allservices['name']])){ if($data['services'][$allservices['name']] == "Salon") {?> selected
        <?php } } ?> >Salon</option>
        <option value="Mobile beautician" <?php if(!empty($data['services'][$allservices['name']])){ if($data['services'][$allservices['name']] == "Mobile beautician") {?> selected
        <?php } }?> >Mobile beautician</option>
        <option value="Both" <?php if(!empty($data['services'][$allservices['name']])){ if($data['services'][$allservices['name']] == "Both") {?> selected
        <?php } } ?>>Both</option>
      </select>
    </div>
  <?php } } ?>
</div>

我的Jquery代码看起来: -

<script>
  $(document).ready(function () {
    $(".div_img_part-2 .selectpicker").attr("disabled",true);
    $('.selectpicker').selectpicker('refresh');
    $(".check-box input[type='checkbox']").on("change", function () {
      if ($(this).prop("checked") == true) {
        $(this).parents(".div_img_part-2").find(".selectpicker").removeAttr("disabled");
        $('.selectpicker').selectpicker('refresh');
      }else{
      $(this).parents(".div_img_part-2").find(".selectpicker").attr("disabled",true);
      $('.selectpicker').selectpicker('refresh');
    }
  });
  });
</script>

首先选择 enter image description here

选择后(编辑) enter image description here

注意: - 当用户选中该复选框时,选择框将在首次注册时处于活动状态。我的所有数据都保存在Laravel的会话中请帮助我:(

1 个答案:

答案 0 :(得分:1)

您需要在加载页面后运行此程序:

$(".check-box input[type='checkbox']").trigger("change");

因此页面会识别复选框值。