2009-07-25 16 views
6

Poszukuję prostego rozwiązania, które uniemożliwi przesłanie formularza logowania przy użyciu pustych pól wejściowych. Kod formularza znajduje się poniżej. Chciałbym użyć prostego rozwiązania JavaScript, jeśli to możliwe.Zatrzymaj przesyłanie z pustymi wartościami wejściowymi

<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>  

Jeśli to możliwe, chciałbym zmienić granicę pustego pola (pól).

Z góry dziękuję.

Odpowiedz

9

Przykładowy kod z kontroli manekina:

<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

Możliwy dojazd:

  • działanie ustawienie do #
  • dodanie obsługi przycisku złożenia lub onsubmit formularza
  • zmienić działanie na formę, czy pola tekstowe nie są puste

Edytuj: Aby to działało nawet dla użytkowników innych niż javascript, wstaw #-akcja po załadowaniu strony.

+1

I nie zapomnij dodać zwrotu false; w swoim programie obsługi onsubmit, jeśli pole tekstowe jest puste. Sprawdź również wtyczkę jQuery Validation, aby uzyskać lepsze podejście do sprawdzania poprawności formularzy: http://docs.jquery.com/Plugins/Validation –

+0

masz rację, zwracając wartość false. Ale nie widziałem nic w jQuery w pytaniu ;-) – TheHippo

+0

Jeśli to możliwe, możesz podać przykład tego, co masz na myśli. Jestem trochę nowy w JS. Moje korzenie są w XHTML i CSS. –

2

Aby zachować minimalny chciałbym po prostu użyć:

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

prawda - nie wskazują, co jest nie w porządku dla użytkownika, ale działa wspaniale .

Powiązane problemy