2016-03-31 9 views
0

Ich muss einen regulären Ausdruck für die Formularüberprüfung schreiben, die Leerzeichen innerhalb einer Zeichenfolge erlaubt, aber nicht nur Leerzeichen erlaubt.Beispiel, wenn der Benutzer nur Leerzeichen eingeben, sollte es Javascript auslösenJavascript-Warnung, wenn Leerzeichen oder kein Wert eingegeben

Alarm

ich habe versucht, dies aber das funktioniert nicht

<script> 

if (document.getElementsByClassName('notes') == " ") { 
    alert("Notes should not begin with space"); 
} 

}

html

<textarea name="notes" class="form-control" class="notes"></textarea> 
+1

'document.getElementsByClassName ('notes')' ==> 'document.getElementsByClassName ('notes') [0] .value' Warum trimmst du keine Leerzeichen mit '.trim()' – Tushar

+0

Ich muss eine Warnung auslösen, wenn das Feld keinen Wert oder nur Leerzeichen vom Benutzer eingegeben hat, bevor Sie senden –

Antwort

1

if (document.getElementsByClassName('notes') == " ")

getElementsByClassName() eine Sammlung von Knoten nicht Wert des Knotens liefert, zusammen mit trim()[] und value Eigenschaft verwenden.

if(document.getElementsByClassName('notes')[0].value.trim() === "") 
1

Sie müssen die value von input wie bekommen:

if (document.getElementsByClassName('notes')[0].value == "") { 
     alert("Notes should not begin with space"); 
    } 

Ps. Die getElementsByClassName wird eine Liste von Elementen zurückgeben. Also, im Vergleich zu " " wird immer false zurückgeben.

1

Sie vergleichen das Array der Elemente, die document.getElementsByClassName zu "" zurückgibt, was offensichtlich falsch ist, Sie möchten den Wert des Elements vergleichen.

if (document.getElementsByClassName('notes')[0].value[0] == " ") { 
    alert("Notes should not begin with space"); 
} 

In diesem Beispiel gibt die .value den Wert des Textbereiches und .value[0] bedeutet das erste Zeichen des Wertes

1

Sie bitte Ihre HTML überprüfen. Es gibt zwei Klassenattribute:

<textarea name="notes" class="form-control" class="notes"></textarea> 

Kombinieren Sie zuerst:

<textarea name="notes" class="form-control notes"></textarea> 

nun die Wähler

document.getElementsByClassName('notes')[0] 

sollten Sie das Zielelement.

+0

Dies wird mir die Warnung, aber direkt nach dem Senden des Formulars. Irgendeine Idee, wie man den Alarm auftut und verhindert, zu senden? –

+0

Was meinen Sie mit "Direkt nachdem das Formular abgeschickt wurde?". Sie haben nichts über die Einreichung von Formularen in Ihrer Frage erwähnt! –

0

Ok ich habe es.Alle Antworten sind oben richtig, aber ich habe "Onclick" Event hinzufügen anschließend auf

<input type="submit" name="submit" class="btn btn-primary btn-default" value="submit" onclick="return showAlert()"> 

js

<script> 
function showAlert(){ 
    if (document.getElementsByClassName('notes')[0].value[0] == " ") { 
    alert("Notes should not begin with space"); 
    return false; 
    } 

} 

0

Versuchen Sie dies es funktioniert gut:

HTML:

<textarea name="notes" class="form-control notes"></textarea> 

Script:

$('textarea').on('keyup', function(){ 
if (document.getElementsByClassName('notes')[0].value[0] == " ") { 
    alert("Notes should not begin with space"); 
} 
}); 

Demo: https://jsfiddle.net/fer49eby/

Verwandte Themen