Jak zidentyfikować puste pola tekstowe za pomocą jQuery? Chciałbym to zrobić używając selektorów, jeśli to w ogóle możliwe. Muszę również wybrać identyfikator, ponieważ w rzeczywistym kodzie, w którym chcę tego użyć, nie chcę wybierać wszystkich danych wejściowych.
W poniższych dwóch przykładach kodu, pierwszy z nich dokładnie wyświetla wartość wpisaną przez użytkownika w polu tekstowym „txt2”. Drugi przykład wskazuje, że istnieje puste pole tekstowe, ale jeśli je wypełnisz, nadal uważa je za puste. Dlaczego to?
Czy można to zrobić za pomocą samych selektorów?
Ten kod zgłasza wartość w polu tekstowym „txt2”:
<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>
Ten kod zawsze zgłasza pole tekstowe „txt2” jako puste:
<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>