ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingมีปัญหาเกี่ยวกับ checkbox ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: มีปัญหาเกี่ยวกับ checkbox ครับ  (อ่าน 1153 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
pramote
คนรักเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 151



ดูรายละเอียด
« เมื่อ: 24 กุมภาพันธ์ 2010, 15:20:14 »

โค๊ด:
function noncheckbox(frm)
{
var inputs = frm.getElementsByTagName('input');
for(var i = 0 ; i < inputs.length ; i++)
{
input = inputs[i];
if(input.type == 'checkbox')
{
if (input.checked <7)
{
alert('กรุณาเลือกอย่างน้อย 7 รายการ');
return false;

}
else
{
return true;
}
}
}

}

โค๊ด:
<form action="book-finish.php" method="post" name="formfood1" onSubmit="javaScript:return noncheckbox(this);" />
<input name="checkbox_adoep[]" type="checkbox" value="<?=$food_name;?>" />
<input name="submit" type="submit" value="ต่อไป" /></form>

ผมมี checkbox 10 กว่าอัน ให้สุ่มติ้กครบ 7 อัน ถึงไปหน้าต่อไปได้ ถ้าไม่ครบให้เด้งติ้กใหม่ ที่ทำได้ตอนนี้คือไม่ถึง 7 อัน เตือนแล้ว แต่พอ 7 อันขึ้นไปก็ยังเตือนอยู่

ขอบคุณทุกท่านที่ให้คำตอบครับ
บันทึกการเข้า
@@@
Administrator
สมุนแก๊งเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 634



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 24 กุมภาพันธ์ 2010, 15:28:41 »

โค๊ด:
function noncheckbox(frm)
{
var inputs = frm.getElementsByTagName('input');
for(var i = 0 ; i < inputs.length ; i  )
{
input = inputs[i];
if(input.type == 'checkbox')
{
if (input.checked <7)
{
alert('กรุณาเลือกอย่างน้อย 7 รายการ');
return false;

}
else
{
return true;
}
}
}

}

โค๊ด:
<form action="book-finish.php" method="post" name="formfood1" onSubmit="javaScript:return noncheckbox(this);" />
<input name="checkbox_adoep[]" type="checkbox" value="<?=$food_name;?>" />
<input name="submit" type="submit" value="ต่อไป" /></form>

ผมมี checkbox 10 กว่าอัน ให้สุ่มติ้กครบ 7 อัน ถึงไปหน้าต่อไปได้ ถ้าไม่ครบให้เด้งติ้กใหม่ ที่ทำได้ตอนนี้คือไม่ถึง 7 อัน เตือนแล้ว แต่พอ 7 อันขึ้นไปก็ยังเตือนอยู่

ขอบคุณทุกท่านที่ให้คำตอบครับ

ลองดูนะครับ  wanwan011 Tongue
โค๊ด:


<script language="javascript1.2" type="text/javascript">
function noncheckbox(frm){
var inputs = frm.getElementsByTagName('input');
var intcheck=0;
for(var i = 0 ; i < inputs.length ; i  ){
input = inputs[i];
if(input.type == 'checkbox'){
intcheck  ;
}
}
if (intcheck<7){
alert('กรุณาเลือกอย่างน้อย 7 รายการ');
return false;
}
return true;

}
</script>


บันทึกการเข้า

รับซื้อเว็บ 100uip ต่อวันขึ้นไป EA Forex
pramote
คนรักเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 151



ดูรายละเอียด
« ตอบ #2 เมื่อ: 24 กุมภาพันธ์ 2010, 15:46:58 »

ยังไม่ได้เลยครับ มันขึ้นเหมือนเดิมครับ
บันทึกการเข้า
@@@
Administrator
สมุนแก๊งเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 634



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 24 กุมภาพันธ์ 2010, 16:34:32 »

ยังไม่ได้เลยครับ มันขึ้นเหมือนเดิมครับ

อ้าว    หายไปไหนละนี้

โค๊ด:


<script language="javascript1.2" type="text/javascript">
function noncheckbox(frm){
var inputs = frm.getElementsByTagName('input');
var intcheck=0;
for(var i = 0 ; i < inputs.length ; i  ){
input = inputs[i];
if(input.type == 'checkbox'){
intcheck   ;
}
}
if (intcheck<7){
alert('กรุณาเลือกอย่างน้อย 7 รายการ');
return false;
}
return true;

}
</script>


บันทึกการเข้า

รับซื้อเว็บ 100uip ต่อวันขึ้นไป EA Forex
jonmufc
ก๊วนเสียว
*

พลังน้ำใจ: 6
ออฟไลน์ ออฟไลน์

กระทู้: 371



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 24 กุมภาพันธ์ 2010, 16:38:29 »

อ้างอิงจากคุณ konlata ครับ

ใน for loop เปลี่ยน

intcheck เป็น intcheck = intcheck + 1

ดูมั้ยอ่ะครับไม่แน่ใจเหมือนกัน

 Tongue Tongue
บันทึกการเข้า

sniffer
สมุนแก๊งเสียว
*

พลังน้ำใจ: 24
ออฟไลน์ ออฟไลน์

กระทู้: 858



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 24 กุมภาพันธ์ 2010, 16:42:11 »

บอกคร่าวๆ แล้วกัน ไม่เขียนให้นะ

var checkboxs = document.getElementsByName('checkboxnames');
มันจะได้ array ของ checkbox มาทั้งหมด
คราวนี้ก็ for ไปตาม length

โค๊ด:
if(checkboxs[i].checked) { // increase }


สุดท้ายเอา increase ไปตรวขสอบว่ามัน = 7 ไหม


จบ
« แก้ไขครั้งสุดท้าย: 24 กุมภาพันธ์ 2010, 16:44:24 โดย sniffer » บันทึกการเข้า

pramote
คนรักเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 151



ดูรายละเอียด
« ตอบ #6 เมื่อ: 24 กุมภาพันธ์ 2010, 16:48:00 »

ยังไม่ได้ครับทั้งเติม intcheck = intcheck + 1 แล้ว ผมใช้ getElementsByName ไม่ได้เพราะชื่อ checkbox มันมี 3 กลุ่ม  แต่เดี่ยวลองแก้ๆดูครับ
บันทึกการเข้า
pramote
คนรักเสียว
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 151



ดูรายละเอียด
« ตอบ #7 เมื่อ: 24 กุมภาพันธ์ 2010, 17:11:53 »

โค๊ด:
function noncheckbox(frm){
var checkboxs = document.getElementsByName('checkbox_adoep');
var intcheck=0;
for(var i = 0 ; i < checkbox_adoep.length ; i++  )
{
if(checkboxs[i].checked)
{
intcheck = intcheck + 1;
}
}
if (intcheck != 1){
alert('กรุณาเลือกอย่างน้อย 1 รายการ');
return false;
}
return true;
}

ผมเขียนใหม่ได้อย่างนี้อะครับ ใช้ getElementsByName แต่ให้เลือก 1 รายการ ถึงผ่านไปได้ ไม่รู้ผมเขียนถูกรึป่าวไม่เคยเรียน javaมาด้วย

อีกอย่าง checkbox มี 3 กลุ่ม checkbox_adoep ให้ติ้กได้แค่ 1,  checkbox_khao ติ้กได้ 5 9 11 แล้วแต่เงื่อนไขที่เข้ามา, checkbox_wan ติ้กได้ 1

ถ้าทำแบบอันแรก มันง่ายกว่าตรงที่เรารวม checkbox ไว้หมดเลย แล้วใส่เงื่อนไขที่เข้ามา มี 7 11 13

ขอบคุณทุกท่านที่ให้คำตอบครับ
« แก้ไขครั้งสุดท้าย: 24 กุมภาพันธ์ 2010, 17:17:12 โดย pramote » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์