10/10/2018, 10:32
Xử lí form nhập thông tin ?
Mình đang làm web , đang làm đến phần nhập thông tin sản phẩm vào cơ sở dữ liệu , mình gặp phải 1 số lỗi sau , mọi người chỉ giùm mình với nhé :
1-Trong form nhập thông tin, mình để vào nút Submit sự kiện onclick="kiemtra()" , tức là gọi đến hàm để kiểm tra tính hợp lệ của form .
Nếu như action để trống thì nó kiểm tra bình thường .
Còn ở đây acction mình để đến 1 file asp để xử lí thông tin , qua đó chèn vào CSDL , nhưng mà nếu như ngay mục đầu tiên bị lỗi , nó thông báo lỗi xong --> nó chuyển ngay đến file asp trong khi các mục ở dưới chưa nhập gì cả (lưu ý là nếu ko để action , thì form của mình nó kiểm tra lỗi bình thường , từ trên xuống dưới). Như vậy là sao hả mọi người ?
2- Mình giả sử form của mình có các mục cần nhập : user , pass , re-pass , mail.
Nếu như mình nhập user , mail đúng rồi , nhưng nhập pass và re-pass nó ko giống nhau --> tất nhiên là sẽ báo lỗi rồi , nhưng làm sao sau khi báo lỗi xong , nó vẫn giữ nguyên các giá trị của user , mail chứ ko reset lại ( mình dùng cái " return false " nhưng ko được)
1-Trong form nhập thông tin, mình để vào nút Submit sự kiện onclick="kiemtra()" , tức là gọi đến hàm để kiểm tra tính hợp lệ của form .
Nếu như action để trống thì nó kiểm tra bình thường .
Còn ở đây acction mình để đến 1 file asp để xử lí thông tin , qua đó chèn vào CSDL , nhưng mà nếu như ngay mục đầu tiên bị lỗi , nó thông báo lỗi xong --> nó chuyển ngay đến file asp trong khi các mục ở dưới chưa nhập gì cả (lưu ý là nếu ko để action , thì form của mình nó kiểm tra lỗi bình thường , từ trên xuống dưới). Như vậy là sao hả mọi người ?
2- Mình giả sử form của mình có các mục cần nhập : user , pass , re-pass , mail.
Nếu như mình nhập user , mail đúng rồi , nhưng nhập pass và re-pass nó ko giống nhau --> tất nhiên là sẽ báo lỗi rồi , nhưng làm sao sau khi báo lỗi xong , nó vẫn giữ nguyên các giá trị của user , mail chứ ko reset lại ( mình dùng cái " return false " nhưng ko được)
Bài liên quan





câu 1: bạn viết onsubmit="return kiemtra();" vào thẻ <form> và hàm kiemtra() bạn phải return true hoặc false nhé, như thế nếu nhập ko đúng thì form không submit.
câu 2: cái action thì để đến chính file hiện tại luôn, nhận các giá trị và hiển thị ra bình thường
function kiemtra() { if(document.getElementById('name').value="") { alert('Nhap username'); return false; } .....................tương tự với những kiểm tra khác return true; }<script language="javascript"> function kiemtra() { var acc,pass,repass,hoten,ngay,thang,nam,email,diachi,dienthoai; acc=document.a.Acc.value; pass=document.a.Pass.value; repass=document.a.RePass.value; hoten=document.a.HoTen.value; diachi=document.a.DiaChi.value; email=document.a.Email.value; dienthoai=document.a.DienThoai.value; ngay=document.a.Ngay.value; thang=document.a.Thang.value; nam=document.a.Nam.value; if(acc=="") { alert("Bạn phải nhập Tài Khoản. "); a.Acc.focus(); return false; } if(pass=="") { alert("Bạn phải nhập mật khẩu. "); a.Pass.focus(); return false; } if(pass.length<6 || pass.length>20) { alert("Mật khẩu phải từ 6-20 ký tự."); a.Pass.focus(); return false; } if(repass!=pass) { alert("Xác nhận mật khẩu không đúng! "); a.RePass.focus(); return false; } if(hoten=="") { alert("Bạn phải nhập họ tên. "); a.HoTen.focus(); return false; } if(ngay=="") { alert("Bạn phải nhập ngày sinh. "); a.Ngay.focus(); return false; } if(thang=="") { alert("Bạn phải nhập tháng sinh. "); a.Thang.focus(); return false; } if(nam=="") { alert("Bạn phải nhập năm sinh. "); a.Nam.focus(); return false; } if(diachi=="") { alert("Bạn phải nhập địa chỉ. "); a.DiaChi.focus(); return false; } re=/\w+@\w+\.\w+/; if(email=="") { alert("Bạn phải nhập Email. "); a.Email.focus(); return false; } else if(re.test(email)==false) { alert("Email không hợp lệ. "); a.Email.focus(); return false; } if(addr=="") { alert("Bạn phải nhập Address. "); a.txtAddress.focus(); return false; } } </script> <p> </p> <div align="center"> <form id="a" name="a" method="post" action="XuLy_ThemAd.asp" onsubmit ="return kiemtra()"> <table width="504" border="0"> <tr> <td colspan="2"><span class="titleAdmin"> THÊM MỚI ADMIN </span></td> </tr> <tr> <td width="130">Tài khoản </td> <td width="364"><input name="Acc" type="text" id="Acc" size="32" /></td> </tr> <tr> <td>Mật khẩu </td> <td><input name="Pass" type="password" id="Pass" size="32" /></td> </tr> <tr> <td>Nhập lại mật khẩu </td> <td><input name="RePass" type="password" id="RePass" size="32" /></td> </tr> <tr> <td>Họ tên </td> <td><input name="HoTen" type="text" id="HoTen" size="32" /></td> </tr> <tr> <td>Ngày sinh </td> <td>Ngày <select name="Ngay" id="Ngay"> <option selected="selected" value="">- -</option> <% for i=1 to 31 %> <option value="<%=i%>"><%=i%></option> <% next %> </select> Tháng <select name="Thang" id="Thang"> <option selected="selected" value="">- -</option> <% for i=1 to 12 %> <option value="<%=i%>"><%=i%></option> <% next %> </select> Năm <select name="Nam" id="Nam"> <option selected="selected" value="">- - - -</option> <% for i=1960 to 2000 %> <option value="<%=i%>"><%=i%></option> <% next %> </select></td> </tr> <tr> <td>Email</td> <td><input name="Email" type="text" id="Email" size="32" /></td> </tr> <tr> <td>Địa chỉ </td> <td><input name="DiaChi" type="text" id="DiaChi" size="32" /></td> </tr> <tr> <td>Điện thoại </td> <td><input name="DienThoai" type="text" id="DienThoai" size="32" /></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td colspan="2"><span class="titleAdmin"> PHÂN QUYỀN CHO ADMIN </span></td> </tr> <tr> <td colspan="2"><table width="499" border="0"> <tr> <td width="245">1. <input name="q1" type="checkbox" id="q1" value="1" /> Quyền quản lý Admin </td> <td width="243">4. <input name="q4" type="checkbox" id="q4" value="4" /> Quyền quản lý Tin Tức </td> </tr> <tr> <td>2. <input name="q2" type="checkbox" id="q2" value="2" /> Quyền quản lý Laptop </td> <td>5. <input name="q5" type="checkbox" id="q5" value="5" /> Quyền quản lý Khách Hàng </td> </tr> <tr> <td>3. <input name="q3" type="checkbox" id="q3" value="3" /> Quyền quản lý Phụ Kiện </td> <td>6. <input name="q6" type="checkbox" id="q6" value="6" /> Quyền quản lý Hoá Đơn </td> </tr> </table></td> </tr> <tr> <td> </td> <td><input type="submit" name="Submit" value="Thêm mới Admin" /> <input type="reset" name="Submit2" value="Hủy bỏ" /></td> </tr> </table> </form>Còn vấn đề kia, tức là khi mình nhập dữ liệu , nếu có 1 ô nhập sai , sau khi báo lỗi thì các ô còn lại vẫn giữ nguyên giá trị chứ ko reset hết thì phải làm thế nào ?
Khai báo cái mớ sau cho gọn lại:
var f = document.a;
acc = f.Acc.value;
pass = f.Pass.value;
repass = f.RePass.value;
...vv
[=========> Bổ sung bài viết <=========]