JQuery獲取指定元素中的checkbox選中狀態的一些屬性

     項目中用戶上傳病例數據,每一次上傳自動生成一個病例文件夾,數據保存到後臺,前端顯示文件夾,如今的需求是勾選想要刪除的文件夾的chenckbox,點擊刪除後,數據庫和前端都相應的更新。前端

      若是是靜態頁面,直接根據id或者class定位到checkbox,而後判斷狀態,直接remove便可.可是動態頁面,須要與後臺交互同步,前端相應的文件夾刪除,後臺數據庫也要刪除文件夾內的數據,每個病例文件夾對應數據庫的一個recordId,那麼問題是,如何知道當前checkbox選中的文件夾對應的病例id(文件夾是動態生成的,若是文件夾數量是固定得,直接按照靜態頁面的方法獲取就好了),項目中用到的是flask框架,見下圖:ajax

 1 <ul class="divall">
 2  {%for record in records%}
 3  {%if current_user==user%}
 4   <li class="pat_li">
 5      <input type="text" class="pat" value="{{record.title}}" onfocus="rename(this)" onblur="blur_supervise(this)" readonly/>
 6      <button class="btn_name_ok glyphicon glyphicon-ok" onclick="ok_name()"></button>
 7      <button class="btn_name_remove glyphicon glyphicon-remove"  onclick="remove_name(this)"></button>
 8          <ul class="pat_assist">
 9             <li ><input type="button" class="btn_img_icon"  > <img id={{record.id}} src={{ url_for('static', filename='images/Dia_mng/delete_icon.png') }} onclick=del_record(this)></input></li>
10             <li ><a href="{{url_for('main.history_list',type=dia_type,record_id=record.id)}}"><button class="btn_img_icon"><img src={{ url_for('static', filename='images/Dia_mng/icon_hiy.png') }}></button></a></li>
11             <li > <a href="{{ url_for('main.record_diagnosis',record_id=record.id,record_type=dia_type) }}"><button class="btn_img_icon"><img src={{ url_for('static', filename='images/Dia_mng/icon_dia.png') }}></button></a></li>
12          </ul>
13          <input type="checkbox" class="chkFolder">
14            <a href="{{ url_for('main.record_diagnosis',record_id=record.id,record_type=dia_type) }}"></a >
15           </li>
16   {% endif %}
17   {% endfor %}
18    </ul>

 如圖所示代碼,第2行3行是flask的循環語句,意思是根據數據庫的病例id的length來循環生成<li>標籤.....li標籤包裹的是一個文件夾的模板,那麼如何肯定第13行當前勾選的checkbox,所對應的病例id,從而進行刪除後臺數據庫?解決辦法是修改代碼:數據庫

<input type="checkbox" class="chkFolder" id={{record.id}}>

將record in records 的每一項的record id賦值給input的id屬性,而後遍歷全部checkbox選取爲true的元素,獲取到id屬性,放入數組中,也就是病例id的數組,而後經過ajax傳給後臺 刷新頁面:json

1   var channel=[];
//divall內全部type爲checkbox的且選中的元素
2 var a=$('.divall input[type=checkbox]:checked').each(function() 3 {//獲取id加入數組 4 if ($.inArray(jQuery(this).attr("id"), channel)==-1) { 5 channel.push(jQuery(this).attr("id")); 6 } 7 });

checkbox的屬性爲true或者false,可是經過jQure得到的true的值爲checked。得到了id而後經過ajax傳遞給後臺。flask

 var record_check = {
         "records_id":channel,
         "dia_type":"{{ dia_type }}",
         }
         $.ajax({
                     type : "post",
                     url : "/delete_records",
                     data : JSON.stringify(record_check),
                     dataType : 'json',
                     contentType : "application/json; charset=utf-8",
                     success : function(data) {
                         console.log(data.flag);
                            if(data.flag==1)
                            window.location.reload();
                            else {
                             alert("未成功刪除,請選擇刪除病例");
                            }
                     }
                 });
相關文章
相關標籤/搜索