Нулевая ошибка при использовании JQuery Validation с JSON AJAX - PullRequest
2 голосов
/ 14 июля 2009

Я использую плагин JQuery Validation и Ajax для своей страницы. Проверка правильности работает, когда я оставляю все пустым. Это также работает нормально, если я ввожу поля помимо поля SKU (того, для которого используется AJAX). Проблема возникает при вводе чего-либо на вход SKU, но не на другие входы. Когда я делаю это, я получаю сообщение об ошибке: «Ошибка:‘ $ .validator.methods […] ’является нулем или не является объектом» и затем отправляет форму на сервер: -P

Я искал помощь в этой ситуации, но самое большее, что я нашел, это: http://forums.asp.net/t/1070825.aspx

Любая помощь будет оценена!

<asp:Content ID="Content3" ContentPlaceHolderID="CustomScriptContent" runat="server">
<script type="text/javascript" src="/Scripts/jquery.rte.js"></script>
<script type="text/javascript" src="/Scripts/jquery.rte.tb.js"></script>
<script type="text/javascript">        
    $.validator.addMethod("packageSKU", function(value) {
        $.getJSON("/JSONHelper/IsPackageSKUAvailable", "packageSKU=" + value, function(data) {
            return data;
        });
    }, 'Please enter a different SKU');

    $(document).ready(function() {
        $("#LongDescription").rte({
            height: 450,
            width: 960,
            controls_rte: rte_toolbar,
            controls_html: html_toolbar
        });
        $("#packageForm").validate({           
        rules: {
                UploadedImage: { accept: "jpg|gif|png" },
                SKU: {
                    remote: {
                        url: "/JSONHelper/IsPackageSKUAvailable",
                        type: "get",
                        data: {
                            packageSKU: function() {
                                return $("#SKU").val();
                            }
                        }
                    },
                    required: true,
                    minLength: 1,
                    maxLength: 30
                }
            },
            messages: {
                SKU: {
                    remote: "This SKU is already taken"
                }
            }
        });
    });

1 Ответ

1 голос
/ 14 июля 2009

Ваш метод должен возвращать true или false. Но ваш метод ничего не возвращает

function(value) {
        $.getJSON("/JSONHelper/IsPackageSKUAvailable", "packageSKU=" + value, function(data) {
            return data;
        });

Обратный вызов вашего ajax-запроса возвращает «данные», но это ни к чему не приведет.

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