Валидатор инструментов jquery на веб-форме asp с несколькими отправками - PullRequest
0 голосов
/ 05 января 2012

У меня есть веб-форма asp с несколькими отправками.Есть набор полей, к которым я тоже хочу присоединить валидатор, но у меня много проблем с ним.Я не могу заставить кнопку отправки срабатывать, потому что сообщения об ошибках валидатора не исчезнут, независимо от того, верен ли ввод или нет.Первоначально я пытался присоединить валидатор к #emailForm-content, но валидатор вообще не работает, поэтому мне пришлось использовать #emailForm .validate.

html

<div id="emailForm" style="display:none;">
    <div id="emailForm-content">
        <fieldset>
            <h3>Email to a Friend:</h3>
            <p>
                <label for="to">To:</label>
                <input id="to" class="validate" type="email" required="required" />
            </p>
            <p>
                <label for="from">From:</label>
                <input id="from" class="validate" type="email" required="required" />
            </p>
            <p>
                <label for="message">Message:</label>
                <textarea id="message" name="message"></textarea>
            </p>
            <button type="submit" id="submit">Submit</button>
            <button type="button" id="cancel">Cancel</button>
        </fieldset>
    </div>
    <div id="emailForm-thankyou" style="display:none;">
        <p>Thank you</p>
    </div>
</div>

jquery

<script type="text/javascript" src="http://www.example.com/javascript/jquery.tools.min.js"></script> 
<script type="text/javascript">
    $(document).ready(function () {
        $('#emailForm .validate').validator();

        $('#emailForm #submit').submit(function (e) {
            var form = $(this);
            if (!e.isDefaultPrevented()) {
                $.ajax({
                    type: "POST",
                    url: "http://www.example.com/components/handlers/FormRequestHandler.ashx/EmailFormRequestHandler",
                    data: JSON.stringify(form),
                    dataType: 'json',
                    cache: false,
                    success: function (msg) {
                        if (msg) {
                            $('emailForm-content').hide();
                            $('emailForm-thankyou').show();
                        }
                    },
                    error: function (msg) {
                        form.data("validator").invalidate(msg);
                    }
                });
            }
            e.preventDefault();
        });
    });
</script>
...