jquery ajax - 使用复选框更新不起作用

时间:2018-05-28 05:56:06

标签: javascript jquery codeigniter

我想创建一个实时工作清单。因此,当添加新列表时,它将实时增加或当作业完成时,用户可以实时检查列表。所以在我的网站上连接的其他用户将实时知道没有刷新页面。

enter image description here

到目前为止,添加一个工作列表工作正常,但在进行检查时不起作用。如果它在1秒内完成,则检查该功能。检查时,使用php代码将作业列表的状态更新为1。 但问题是复选框无法正常工作。

这是我的HTML代码:

  <div class="container-todolist">


          <ul class="todo-list">
            <?php foreach ($tampiltodolist as $list): ?>


            <li class="<?php if ($list['status']==='1') {
              echo " checked";
            }else {
              echo " notchecked";
            } ?>">
              <!-- drag handle -->
              <span class="handle">
                    <i class="fa fa-ellipsis-v"></i>
                    <i class="fa fa-ellipsis-v"></i>
                  </span>
              <!-- checkbox -->
              <input type="checkbox" id="checkbox" <?php if ($list['status']==='1') {
                echo "checked";
              } ?> name="status" value="<?php echo $list['nolist']; ?>">
              <!-- todo text -->
              <span class="text"><?php echo $list['isi']; ?></span>
              <!-- Emphasis label -->
              <small class="label label-danger"><i class="fa fa-clock-o"></i>
                <?php $tanggal=$list['tanggal'];
                  $waktu =$list['waktu'];
                echo time_elapsed_string("$tanggal $waktu");
               ?>
              </small>
              <!-- General tools such as edit or delete-->
              <div class="tools">
                <i class="fa fa-edit"></i>
                <i class="fa fa-trash-o"></i>
              </div>
            </li>
            <?php endforeach; ?>
          </ul>

            </div>

这是我的javascript代码:

<script type="text/javascript">
        const urlList="<?php echo site_url('Todolist/NewtodoList') ?>";
      $(document).ready(function(){
        const url="<?php echo site_url('Todolist/Addtodolist') ?>";
        const urlList="<?php echo site_url('Todolist/NewtodoList') ?>";
        const urlCheck ="<?php echo site_url('Todolist/checkedlist') ?>";

        $('#formtodolist').on('submit',function(e){

    e.preventDefault();
    if (!$('#isi-text').val()) {
      $('#isi-text').addClass('isInValid');
    }else {
    $.ajax({
      type:"POST",
      url:url,
      data:$(this).serialize(),
      success:function(data){
        $('#todolist').modal('hide');
        $('#isi-text').removeClass('isInValid'),
        $('#isi-text').val('');

      },
    })
    }
    });
    //$('#checkbox').on('click',function(){
    $('input:checkbox').on('change',function(){
    const checkdata= $(this).val();

      if ($(this).prop('checked')) {

        $.ajax({
          type:"POST",
          url:urlCheck,
          data:{"checkdata":checkdata},
          success(function(data){
            $('.container-todolist').load(urlList);
          })
        });
      }
    });


      });
      function updateList(){
          $('.container-todolist').load(urlList);

      }

      setInterval('updateList()',1000);

    </script>

2 个答案:

答案 0 :(得分:0)

这应该对你有用

$('input:checkbox').on('change',function(){
        const checkdata= $(this).val();

          if ($(this).prop('checked')) {

            $.ajax({
              type:"POST",
              url:urlCheck,
              data:{"checkdata":checkdata},
              success(function(data){
                $('.container-todolist').load(urlList);
              })
            });
          }
        });

答案 1 :(得分:-1)

你应该更新选择器:

$(document).on('change','input:checkbox',function(){
const checkdata= $(this).val();

  if ($(this).prop('checked')) {

    $.ajax({
      type:"POST",
      url:urlCheck,
      data:{"checkdata":checkdata},
      success(function(data){
        $('.container-todolist').load(urlList);
      })
    });
  }
});