ช่วยดู java scriptให้หน่อยน่ะครับ

เริ่มโดย deadclosed, 18 มิถุนายน 2010, 15:05:27

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

deadclosed

                      <script type="text/javascript">

function check_data()
{

var format_mail=/^([a-zA-Z0-9\_-.]{3,}) @([a-zA-Z0-9-]{3,}) . ([a-zA-Z]{2,}|. ([a-zA-Z]{2,}))$/;

if (!(format_mail.test(document.getElementById('email').value)))
{

alert("E-mail address invalid format.");
document.getElementById('email').focus();
return false;

}


}


</script>
                            <script language="javascript">

function checkID(id) {

if(id.length != 13) return false;

for(i=0, sum=0; i < 12; i  )

sum  = parseFloat(id.charAt(i))*(13-i);

if((11-sum)!=parseFloat(id.charAt(12))) return false;

return true;

}

function checkForm() {

if(!checkID(document.form1.idcard.value))
alert('รหัส ประชาชนไม่ถูกต้อง');

}

</script>


<form id="form1" method="post" action="checkregister.php" onsubmit="checkForm(); return false;"name="form1">
                                                <table width="60%" border="0" cellspacing="0" cellpadding="0">
                                                    <tr>
                                                        <td>ชื่อ : </td>
                                                        <td><label><input name="name" type="text" id="name" size="30" />*
                                                            </label></td>
                                                    </tr>
                                                    <tr>
                                                        <td>นามสกุล : </td>
                                                        <td><label><input name="surname" type="text" id="surname" size="30" />*
                                                            </label></td>
                                                    </tr>
                                                    <tr>
                                                        <td>ชื่อเข้าระบบ : </td>
                                                        <td><label><input name="username" type="text" id="username" size="30" />*
                                                            </label></td>
                                                    </tr>
                                                    <tr>
                                                        <td>รหัสผ่าน : </td>
                                                        <td><label><input name="password" type="password" id="password" size="30" />*
                                                            </label></td>
                                                    </tr>
                                                    <tr>
                                                        <td>เพศ : </td>
                                                        <td><label>
                                                                <input name="sex" type="radio" value="ชาย" />
                                                                ชาย
                                                                <input name="sex" type="radio" value="หญิง" />
                                                                หญิง</label>*</td>
                                                    </tr>
                                                    <tr>
                                                        <td>เลขบัตรประชาชน : </td>
                                                        <td><label><input name="idcard" type="text" id="surname" size="30" />*
                                                            </label></td>
                                                    </tr>
                                                    <tr>
                                                        <td>email : </td>
                                                        <td><label><input name="email" type="text" id="email" size="30" />*
                                                            </label></td>
                                                    </tr>
                                                    <tr>
                                                        <td>เบอร์โทรศัพท์ : </td>
                                                        <td><label><input name="telephone" type="text" id="telephone" size="30" />*
                                                            </label></td>
                                                    </tr>
                                                    <tr>
                                                        <td height="52" valign="top">ที่อยู่ : </td>
                                                        <td><label>
                                                            <textarea name="addhome" rows="4" cols="20" id="addhome">
                                                            </textarea></label>*
                                                        </td>
                                                    </tr>
                                                    <tr>
                                                        <td>&nbsp;</td>
                                                        <td><u>หมายเหตุ&nbsp;</u>เครื่องหมาย * คือส่วนที่ห้ามเว้นว่างไว้ และกรุณากรอกข้อมูลจริงเพื่อประโยชน์ของท่านในภายหลัง  </td>
                                                    </tr>
                                                    <tr>
                                                        <td>&nbsp;</td>
                                                        <td>&nbsp;</td>
                                                    </tr>
                                                </table>
                                                <p>&nbsp;</p>

                                                <p>
                                                    <label>
                                                        <input type="submit" name="Submit" value="ตกลง" onclick="return check_data()" />
                                                    </label>
                                                </p>
                                            </form>


มันมีปัญหาต้องที่ <form id="form1" method="post" action="checkregister.php" onsubmit="checkForm(); return false;"name="form1">
คือเมื่อเลขบัตรประชาชนมัปัญหา สคลิปตัวที่สองจะทำงาน
แต่ถ้าเลขบัตรผ่านมันดัน action ไม่ได้ซะเนี่ยกดไม่ไปอ่ะอยู่หน้าเดิม :P
น่าจะมีปัญหาที่ onsubmit="checkForm(); return false;"
ไม่รู้ว่าแก้ไง เปลี่ยนเป็นreturn true ก้ไปทั้งๆที่เลขบัตรผิด

ช่วยดูให้หน่อยน่ะครับ :wanwan017:

NightClub

ไมแน่ใจนะ

if((11-sum)!=parseFloat(id.charAt(12))) return false;

return true;

แก้เป็น

if((11-sum)!=parseFloat(id.charAt(12))){ return false;} else{

return true; }

มันเหมือนกับว่า return true ตลอด
รับจ้างเขียนโปรแกรม PHP งานมืออาชีพ เสร็จตามที่กำหนด ราคาปานกลาง
เหมาะกับผู้ที่รับงานมาแล้วส่งต่อจ๊ะ PM มาเลย

deadclosed

อ้างถึงจาก: NightClub ใน 18 มิถุนายน 2010, 15:19:07
ไมแน่ใจนะ

if((11-sum)!=parseFloat(id.charAt(12))) return false;

return true;

แก้เป็น

if((11-sum)!=parseFloat(id.charAt(12))){ return false;} else{

return true; }

มันเหมือนกับว่า return true ตลอด

อันนี้ยังไม่ได้อ่ะครับ สคลิปมันไม่ทำงานอ่ะ

+1 ครับ :wanwan017:

kkusd

เอาไปใส่ที่ไหนครับในโพส wp รึเปล่าครับ

deadclosed

อ้างถึงจาก: kkusd ใน 18 มิถุนายน 2010, 15:51:09
เอาไปใส่ที่ไหนครับในโพส wp รึเปล่าครับ
เปล่าครับ
ใส่ในเว็บธรรมดา :wanwan012:

pbeer

ไม่แน่ใจเหมือนกัน

เอา return false; ออก เหลือแค่ onsubmit="checkForm();"
ขายบัญชี Adsense For Web อายุ 7 ปี รับ PIN, รับเงินมาแล้วกว่า $20,000 สนใจ PM มาจ้าา

goolexgooyom

ปกติเคยใช้แบบนี้ค่ะ

<script>
function checkForm() {

if(!checkID(document.form1.idcard.value)){
alert('รหัส ประชาชนไม่ถูกต้อง');
return false;
}
return true;
}
</script>
<form id="form1" method="post" action="checkregister.php" onsubmit=" return checkForm();;"name="form1">

โปรโมทเว็บไซต์อย่างเทพ โปรโมทเว็บด้วย skysubmit.com

gamebaby

ผมไม่ทราบครับ มาช่วยดันแล้วกัน

เก็บด้วย  :wanwan020:
[direct=http://www.hatyainaka.com]นาฬิกา casio[/direct]

[direct=http://did-lakers-win.blogspot.com]did-lakers-win.blogspot.com[/direct]

[direct=http://www.hatyainaka.com]นาฬิกา casio[/direct]

[direct=http://www.hatyainaka.com]นาฬิกา[/direct]

sleepcat

ในฟังก์ชั่น checkForm ควรเป็นเช่นนี้

function checkForm() {

if(!checkID(document.form1.idcard.value)){
alert('รหัส ประชาชนไม่ถูกต้อง');
return false;
}
return ture;
}


แล้วส่วนใน html ส่วนของ form ก็น่าจะเป็น
<form id="form1" method="post" action="checkregister.php" onsubmit="checkForm();" name="form1">

ปล. จริงๆ น่าจะรวมฟังก์ชั่น check_data() และ checkForm() เข้าไว้ด้วยกันก็ได้อ่ะ
เช่น

function validate(){
if(condition-1){
alert('something's wrong');
return false;
}
if(condition-2){
alert('something's wrong');
return false;
}
.
.
.
if(condition-n){
alert('something's wrong');
return false;
}

return true;
}

playinw

เรียน เจ้าของกระทู้

โค้ดควรจะเป็นอย่างที่คุุณ sleepcat  แนะนำครับจึงจะถูกต้อง

ขออธิบายไว้ให้นะครับว่าทำไมถึงโค้ดถึงออกมาในรูปแบบนี้และคุณใช้ไม่ได้
จะได้เก็บไว้ใช้ได้ในคราวหน้าได้ด้วย

onsumit = ถ้าคุณ return false;  มันจะเป็นการปฎิเสธการส่งข้อมูล (ปฎิเสธการ submit)

หาคุณเขียนว่า onsubmit="checkForm(); return false;" มันก็จะทำงานฟังก์ชั่น checkForm(); พอเสร็จแล้ว
ไม่ว่าบัตรถูกหรือผิดก็ return false เพราะว่าตรงนี้ไม่มีเงื่อนไขในการเช็คว่าบัตรถูกไหม แต่เงื่อนไขดังกล่าวมันอยู่ใน checkForm()
ดังนั้นจึงควร return ใน checkForm() เลย

ลองมาพิจารณาดูโค้ดที่คุณให้มากันดูนะครับ

<form id="form1" method="post" action="checkregister.php" onsubmit="checkForm(); return false;"name="form1">
onsubmit="checkForm(); return false;"
แปลเป็นภาษาไทยว่า เรียกฟังก์ชั่นเช็คฟอร์ม พอหลังจากนั้นให้ปฎิเสธการ submit หรือการส่งข้มูลนั่นเอง ทำให้ไม่ว่าบัตรถูกหรือผิดก็ไม่ส่ง

แล้วก็ที่คุณบอกว่าเปลี่ยนเป็น true แล้ว submit ผ่านตลอด
onsubmit="checkForm(); return true;"
แปลได้ว่า เรียกฟังก์ชั่นเช็คฟอร์ม จากนั้นให้ยินยอมส่งข้อมูล

เพราะอะไรจึงเป็เช่นนี้ คำตอบคือเป็นเพราะ
ฟังก์ชั่น checkForm(); มีหน้าที่ตรวจสอบฟอร์ม และ return มีหน้้าที่สั่งการ โดย return true คือยอมส่งข้อมูล และ false คือไม่ยอมส่ง
กล่าวคือ

function checkForm() {
if(!checkID(document.form1.idcard.value)){
alert('รหัส ประชาชนไม่ถูกต้อง');
return false;
}
return ture;
}

แปลว่า

function checkForm() {
ถ้า(รหัสประชาชนไม่ถูกต้อง){
แสดงกล่องข้อความบอกว่าบัตรไม่ถูก
ปฎิเสธการส่งข้อมูล แล้วหยุดอยู่แค่นี้ไม่ต้องทำงานต่อ
}
ยินยอมให้ส่งข้อมูล;
}



deadclosed

อ้างถึงจาก: playinw ใน 19 มิถุนายน 2010, 05:18:55
เรียน เจ้าของกระทู้

โค้ดควรจะเป็นอย่างที่คุุณ sleepcat  แนะนำครับจึงจะถูกต้อง

ขออธิบายไว้ให้นะครับว่าทำไมถึงโค้ดถึงออกมาในรูปแบบนี้และคุณใช้ไม่ได้
จะได้เก็บไว้ใช้ได้ในคราวหน้าได้ด้วย

onsumit = ถ้าคุณ return false;  มันจะเป็นการปฎิเสธการส่งข้อมูล (ปฎิเสธการ submit)

หาคุณเขียนว่า onsubmit="checkForm(); return false;" มันก็จะทำงานฟังก์ชั่น checkForm(); พอเสร็จแล้ว
ไม่ว่าบัตรถูกหรือผิดก็ return false เพราะว่าตรงนี้ไม่มีเงื่อนไขในการเช็คว่าบัตรถูกไหม แต่เงื่อนไขดังกล่าวมันอยู่ใน checkForm()
ดังนั้นจึงควร return ใน checkForm() เลย

ลองมาพิจารณาดูโค้ดที่คุณให้มากันดูนะครับ

<form id="form1" method="post" action="checkregister.php" onsubmit="checkForm(); return false;"name="form1">
onsubmit="checkForm(); return false;"
แปลเป็นภาษาไทยว่า เรียกฟังก์ชั่นเช็คฟอร์ม พอหลังจากนั้นให้ปฎิเสธการ submit หรือการส่งข้มูลนั่นเอง ทำให้ไม่ว่าบัตรถูกหรือผิดก็ไม่ส่ง

แล้วก็ที่คุณบอกว่าเปลี่ยนเป็น true แล้ว submit ผ่านตลอด
onsubmit="checkForm(); return true;"
แปลได้ว่า เรียกฟังก์ชั่นเช็คฟอร์ม จากนั้นให้ยินยอมส่งข้อมูล

เพราะอะไรจึงเป็เช่นนี้ คำตอบคือเป็นเพราะ
ฟังก์ชั่น checkForm(); มีหน้าที่ตรวจสอบฟอร์ม และ return มีหน้้าที่สั่งการ โดย return true คือยอมส่งข้อมูล และ false คือไม่ยอมส่ง
กล่าวคือ

function checkForm() {
if(!checkID(document.form1.idcard.value)){
alert('รหัส ประชาชนไม่ถูกต้อง');
return false;
}
return ture;
}

แปลว่า

function checkForm() {
ถ้า(รหัสประชาชนไม่ถูกต้อง){
แสดงกล่องข้อความบอกว่าบัตรไม่ถูก
ปฎิเสธการส่งข้อมูล แล้วหยุดอยู่แค่นี้ไม่ต้องทำงานต่อ
}
ยินยอมให้ส่งข้อมูล;
}




อ้างถึงจาก: sleepcat ใน 19 มิถุนายน 2010, 04:46:44
ในฟังก์ชั่น checkForm ควรเป็นเช่นนี้

function checkForm() {

if(!checkID(document.form1.idcard.value)){
alert('รหัส ประชาชนไม่ถูกต้อง');
return false;
}
return ture;
}


แล้วส่วนใน html ส่วนของ form ก็น่าจะเป็น
<form id="form1" method="post" action="checkregister.php" onsubmit="checkForm();" name="form1">

ปล. จริงๆ น่าจะรวมฟังก์ชั่น check_data() และ checkForm() เข้าไว้ด้วยกันก็ได้อ่ะ
เช่น

function validate(){
if(condition-1){
alert('something's wrong');
return false;
}
if(condition-2){
alert('something's wrong');
return false;
}
.
.
.
if(condition-n){
alert('something's wrong');
return false;
}

return true;
}


ขอบคุณครับ ทั้งหมดเลย +1 หมดเลย