Проверка JQuery на выберите с сообщением - PullRequest
1 голос
/ 04 января 2012

Я хочу добавить проверку для оператора выбора, когда кто-то пытается отправить, где выбор все еще показывает «Пожалуйста, выберите часовой пояс»:

<form id="timezoneform" action="<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>" method="POST">

    <select name="DropDownTimezone" id="DropDownTimezone" class="required">
      <option selected="" name="timezone_selector" value="" style="font-style:italic">Please select a timezone</option>
      <option value="Pacific/Midway">Pacific/Midway (GMT -11:00)</option>
      ....
      </select>
    <input type="submit" id="changetimezone" name="changetimezone" value="Change timezone" />
</form>

Я пытался предоставить ту же проверку, которую я использую для текстаящики, но я думаю, что это не то же самое:

<head>
<script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script language="javascript" type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.8.1/jquery.validate.min.js"></script>
<script type="text/javascript">
var js = jQuery.noConflict();
js("#changetimezone").click(function() {
js("#timezoneform").validate({
    rules: {
        timezone_selector: {
            required: true
        }
    },
    messages: {
        timezone_selector: {
            required: "You must select a timezone"
        }
    }

});
});
</script>
</head>

Как я могу получить похожее сообщение для операторов выбора, как validate() для текстовых полей.Я видел подобные сообщения, но мне все еще не везет.Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 04 января 2012

Ваша форма требует нескольких настроек:

<form id="timezoneform" action="<?php echo htmlentities($_SERVER['REQUEST_URI']); ?>" method="POST">

    <select name="DropDownTimezone" id="DropDownTimezone">
      <option selected="" name="timezone_selector" value="" style="font-style:italic">Please select a timezone</option>
      <option value="Pacific/Midway">Pacific/Midway (GMT -11:00)</option>
      ....
      </select>
    <input type="submit" id="changetimezone" name="changetimezone" value="Change timezone" />
</form>

Обратите особое внимание на то, что:

  • элемент option не должен иметь атрибут name, иплагин validate не должен быть нацелен на элемент option.

  • Вам также не нужно class='required' на select, если вы собираетесь определить правило в своем JavaScript.

  • Наконец, вам не нужно вызывать validate внутри обработчика click.Вы можете определить его, как только форма будет готова (js(document).ready(function () { ... });).

В итоге:

var js = jQuery.noConflict();
js(document).ready(function() {
    js("#timezoneform").validate({
        rules: {
            DropDownTimezone: {
                required: true
            }
        },
        messages: {
            DropDownTimezone: {
                required: "You must select a timezone"
            }
        }

    });
});

Пример: http://jsfiddle.net/ALUQB/

0 голосов
/ 04 января 2012

вам необходимо указать список select, а не значение параметра.

<script type="text/javascript">
var js = jQuery.noConflict();
js("#changetimezone").click(function() {
js("#timezoneform").validate({
    rules: {
        DropDownTimezone: {
            required: true
        }
    },
    messages: {
        DropDownTimezone: {
            required: "You must select a timezone"
        }
    }

});
});
</script>

Это работает, потому что ваше значение в timezone_selector установлено в пустую строку. Теперь вы получите правильное сообщение об ошибке. Если вам нужна помощь с размещением, посмотрите параметры errorPlacement, errorContainer и errorElement, найденные здесь Параметры проверки jQuery

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...