亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

復選框偵聽器未觸發

復選框偵聽器未觸發

桃花長相依 2023-07-20 14:28:21
我設置了一個復選框,該復選框應與列表中的每一行一起出現。我想根據復選框狀態傳遞 row.id 和布爾值。但問題是它只適用于第一個復選框:id 和布爾狀態被傳遞。{% for row in list %}   ....    <label>      Off      <input name="active{{ row.id }}" id="active{{ row.id }}" type="checkbox" list_id="{{ row.id }}">      <span class="lever"></span>      On    </label>   ....{% endfor %}我添加了 javascript 來監聽復選框狀態,并在檢查后向 Flask 應用程序發送 POST 請求。它可以工作,但僅在選中第一個復選框時才會觸發,Jinja2 生成的所有其他復選框都會被忽略。document.addEventListener('DOMContentLoaded', function () {  var checkbox = document.querySelector('.input[type="checkbox"]');  checkbox.addEventListener('change', function () {  var list_id = $(this).attr('list_id');      if (checkbox.checked) {        req = $.ajax({          url : '/dashboard',          type : 'POST',          data : { id: list_id, active : 'true' }        });      console.log(list_id);    } else {          req = $.ajax({          url : '/dashboard',          type : 'POST',          data : { id : list_id, active: 'false' }        });      console.log(list_id);    }  });});
查看完整描述

1 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

  1. 當你使用querySelector時你只能得到第一個

  2. 輸入前面有一個不應該出現的點

  3. 你有 jQuery,所以使用它 - 它會一次性選中所有復選框,而不需要querySelectorAll

$(function() {

  $('input[type="checkbox"]').on('change', function() {

    var list_id = $(this).attr('list_id');

    console.log(list_id);

    req = $.ajax({

      url: '/dashboard',

      type: 'POST',

      data: {

        id: list_id,

        active: this.checked ? 'true' : 'false'

      }

    });

  });

});


查看完整回答
反對 回復 2023-07-20
  • 1 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號