2009-07-25 33 views
6

Im Tìm kiếm giải pháp đơn giản để ngăn biểu mẫu đăng nhập gửi với trường nhập trống. Mã cho biểu mẫu dưới đây. Tôi muốn sử dụng một soluiton Javascript đơn giản nếu có thể.Dừng gửi với giá trị đầu vào trống

<form id="login" method="post" action=""> 
    <input type="text" name="email" id="email" /> 
    <input type="password" name="pwd" id="pwd" /> 
    <button type="submit" id="submit">Login</button> 
</form>  

Nếu có thể, tôi cũng muốn thay đổi đường viền của (các) trường trống.

Xin cảm ơn trước.

Trả lời

9

Mẫu mã với kiểm tra giả:

<script type="text/javascript"> 
function checkForm(form) { 
    var mailCheck = checkMail(form.elements['email']), 
     pwdCheck = checkPwd(form.elements['pwd']); 
    return mailCheck && pwdCheck; 
} 

function checkMail(input) { 
    var check = input.value.indexOf('@') >= 0; 
    input.style.borderColor = check ? 'black' : 'red'; 
    return check; 
} 

function checkPwd(input) { 
    var check = input.value.length >= 5; 
    input.style.borderColor = check ? 'black' : 'red'; 
    return check; 
} 
</script> 

<style type="text/css"> 
#login input { 
    border: 2px solid black; 
} 
</style> 

<form id="login" method="post" action="" onsubmit="return checkForm(this)"> 
    <input type="text" name="email" id="email" onkeyup="checkMail(this)"/> 
    <input type="password" name="pwd" id="pwd" onkeyup="checkPwd(this)"/> 
    <button type="submit" id="submit">Login</button> 
</form> 
3

cách tiếp cận có thể xảy ra:

  • thiết lập hành động để #
  • thêm xử lý để nút gửi hoặc onsubmit dạng
  • thay đổi hoạt động của các hình thức, nếu lĩnh vực văn bản không có sản phẩm nào

Chỉnh sửa: Để thực hiện việc này ngay cả khi người dùng không sử dụng javascript chèn # -action khi trang được tải.

+1

Và đừng quên thêm trả về false; trong trình xử lý onsubmit của bạn, nếu trường văn bản trống. Ngoài ra, hãy kiểm tra plugin Xác thực jQuery để có cách tiếp cận tốt hơn để xác thực biểu mẫu: http://docs.jquery.com/Plugins/Validation –

+0

bạn có quyền trả về false. Nhưng tôi đã không thấy bất kỳ điều gì về jQuery trong câu hỏi ;-) – TheHippo

+0

Nếu có thể, bạn có thể cung cấp một ví dụ về ý của bạn. Tôi hơi mới với JS. Rễ của tôi là xHTML và CSS. –

2

Để giữ cho nó tối thiểu tôi sẽ chỉ cần sử dụng:

<form id="login" method="post" action="" onSubmit="if (this.email.value == '' || this.pwd.value == '') {return false;}"> 

Cấp - không chỉ ra những gì không ổn cho người dùng, nhưng một công trình xử .

Các vấn đề liên quan