使用JSON验证与JSON AJAX时出现空错误

时间:2009-07-14 16:30:10

标签: jquery ajax json validation

我正在为我的页面使用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 个答案:

答案 0 :(得分:1)

您的方法应该返回true或false。但是你的方法没有返回任何东西

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

你的ajax请求的回调会返回“数据”,但这无处可去。