|
|
|
ปัญหาการแสดงผลของ jQuery ไม่ทำงาน ทั้งๆ ที่ใน Console Attr นั้นๆ ก็ขึ้นแล้วแต่ในหน้าเว็บไม่แสดง |
|
|
|
|
|
|
|
ลองอธิบายหรือเขียนเพิ่มอีกนิดครับ
|
|
|
|
|
Date :
2013-02-07 09:21:13 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือ เขียนเป็น Multi-Check box อ่ะครับ คลิกแล้วมันจะทำงานแค่ครั้งเดียว ครั้งที่สอง สาม ติ๊กยังไง ก็ไม่ ติ๊กทั้งหมดให้ครับ
|
|
|
|
|
Date :
2013-02-07 09:30:50 |
By :
ALTELMA |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอา each เข้ามาช่วยวนตรวจสอบ checkbox ก็ดีนะครับ โดยใช้เงื่อนไขตรวจสอบ $('#selectAll') ว่าถูก checked รึปล่าว
|
|
|
|
|
Date :
2013-02-07 09:38:14 |
By :
Necrotorture |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแบบนี้ดูครับ
ตรงส่วนของ $('#selectAll').click
JavaScript
$(document).ready(function(){
// SELECT / UNSELECT LIST
$('#selectAll').click(function(){
// ตรงนี้ครับ เพราะผมคิดว่า .attr() จะไปเซ็ตค่า checked โดยใช้เมธอด setAttribute()
// โดยรับค่าจาก this.checked ซึ่งเป็นชนิด boolean
// ซึ่งเมื่อแปลงเป็นสตริง จะเป็น 'true' หรือ 'false' และทำให้เงื่อนไขเป็นจริงเหมือนกันหมด เป็นเหตุผลที่ว่าทำไมจึงทำงานถูกต้องแค่ครั้งเดียว
// ดังนั้นลองให้ค่าที่ถูกต้องกับ attribute อันนี้ดู ('checked' หรือ '')
$('.ChkBox').attr('checked', this.checked ? '' : 'checked');
});
// if all checkbox are selected, check the selectall checkbox
$('.ChkBox').click(function(){
if($('.ChkBox').length == $('.ChkBox:checked').length){
$("#selectAll").attr("checked", "checked");
}else{
$("#selectAll").removeAttr("checked");
}
});
});
|
ประวัติการแก้ไข 2013-02-07 09:55:51
|
|
|
|
Date :
2013-02-07 09:53:37 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เคยเป็นครับ ผมแก้ไขโดยการ สร้างเป็น function ไว้นอก $(document).ready ถึงใช้งานได้ตามปกติ
|
ประวัติการแก้ไข 2013-02-07 10:02:11
|
|
|
|
Date :
2013-02-07 10:01:53 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
<script src="http://code.jquery.com/jquery-latest.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
</head>
<body>
<input type="checkbox" id="checkAll" />เลือกทั้งหมด / ไม่เลือกทั้งหมด <br />
<input type="checkbox" name="chk[]" value="A" for="sub" /> A<br />
<input type="checkbox" name="chk[]" value="B" for="sub" /> B<br />
<input type="checkbox" name="chk[]" value="C" for="sub" /> C<br />
<input type="checkbox" name="chk[]" value="D" for="sub" /> D<br />
<script>
$("#checkAll").change(function(){
// http://code.jquery.com/jquery-latest.js มันเป็นเวอร์ชั้น 2.0 กว่าๆ น่ะครับ
if($(this).prop("checked"))
$("input[type='checkbox']").prop({"checked":true});
else
$("input[type='checkbox']").prop({"checked":false});
/*
โค้ดข้างล่างนี้ใช้กับ JQuery ที่ต่ำกว่าเวอร์ชั่น 2.0
if($(this).attr("checked"))
$("input[type='checkbox']").attr({"checked":"checked"});
else
$("input[type='checkbox']").removeAttr("checked");
*/
});
$("[for='sub']:checkbox").click(function(){
if($("[for='sub']:checkbox:checked").length == $(":checkbox").length-1)
$("#checkAll").prop({"checked":true});
else
if($("[for='sub']:checkbox:checked").length < $(":checkbox").length-1)
$("#checkAll").prop({"checked":false});
});
</script>
</body>
</html>
|
|
|
|
|
Date :
2013-02-07 12:48:56 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|