Wie identifiziere ich leere Textfelder mit jQuery? Ich würde es gerne mit Selektoren machen, wenn es überhaupt möglich ist. Außerdem muss ich die ID auswählen, da ich im realen Code, in dem ich diese verwenden möchte, nicht alle Texteingaben auswählen möchte.
In meinen folgenden zwei Codebeispielen zeigt das erste den vom Benutzer in das Textfeld "txt2" eingegebenen Wert genau an. Das zweite Beispiel zeigt, dass ein leeres Textfeld vorhanden ist. Wenn Sie es jedoch ausfüllen, wird es weiterhin als leer angesehen. Warum ist das?
Kann dies nur mit Selektoren erfolgen?
Dieser Code gibt den Wert im Textfeld "txt2" an:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#cmdSubmit').click(function() {
alert($('[id=txt2]').val());
});
});
</script>
</head>
<body>
<form>
<input type="text" name="txt1" id="txt1" value="123" /><br />
<input type="text" name="txt2" id="txt2" value="" /><br />
<input type="text" name="txt3" id="txt3" value="abc" /><br />
<input type="submit" name="cmdSubmit" id='cmdSubmit' value="Send" /><br />
</form>
</body>
</html>
Dieser Code meldet das Textfeld "txt2" immer als leer:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$('#cmdSubmit').click(function() {
if($('[id^=txt][value=""]').length > 0) {
if (!confirm("Are you sure you want to submit empty fields?")) {
if (event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
}
}
});
});
</script>
</head>
<body>
<form>
<input type="text" name="txt1" id="txt1" value="123" /><br />
<input type="text" name="txt2" id="txt2" value="" /><br />
<input type="text" name="txt3" id="txt3" value="abc" /><br />
<input type="submit" name="cmdSubmit" id='cmdSubmit' value="Send" /><br />
</form>
</body>
</html>