Выбор пустого ввода текста с помощью jQuery

Как определить пустые текстовые поля с помощью jQuery? Я хотел бы сделать это с помощью селекторов, если это вообще возможно. Кроме того, я должен выбрать идентификатор, так как в реальном коде, где я хочу использовать это, я не хочу выбирать все текстовые вводы.

В моих следующих двух примерах кода первый точно отображает значение, введенное пользователем в текстовое поле «txt2». Второй пример показывает, что есть пустое текстовое поле, но если вы заполните его, оно все равно будет считаться пустым. Почему это?

Можно ли это сделать, используя только селекторы?

Этот код сообщает значение в текстовое поле "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>

Этот код всегда сообщает текстовое поле "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() {
                    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>

Ответы на вопрос(9)

Ваш ответ на вопрос