简体   繁体   English

使用jQuery来验证Django的形式

[英]using jquery to validate forms in django

i have the following code to validate a form using jquery i don't know why isn't it working? 我有以下代码来使用jquery验证表单,我不知道为什么它不起作用?

jQuery(function(){
    jQuery("#task_name").validate({
        expression: "if(VAL) return true; else return false;", message: "please enter task name" 
    });
    jQuery("#task_city").validate({
        expression: "if ( VAL) return true; else return false;", message: "please enter task  city"
    });
    jQuery("#task_address").validate({
        expression: "if (VAL) return true; else return false;", message: "please enter task   address"
    });
    jQuery("#task_desc" ).validate({
        expression: "if (VAL) return true; else return false;", message: "please enter task   desc"
    });
    jQuery("#task_price").validate({
        expression: "if (VAL) return true; else return false;", message: "please enter task  price"
    }); 
});

As per the jQuery Validation plugin documentation you must use messages and not message . 根据jQuery Validation插件文档,您必须使用messages而不是message

The plugin also works for an entire form not one form field at a time, please read the documentation thoroughly. 该插件还适用于整个表单,而不是一次只适用于一个表单字段,请彻底阅读文档。

According to the docs something like this should work for you: 根据文档,类似这样的东西应该适合您:

jQuery(function(){
    /* You do not need to use jQuery instead of $ inside of a jQuery declared function */
    $("#form_id").validate({
        rules: {
            /* #task_name name */
            name1: "required",
            /* #task_city name */
            name2: "required",
            /* #task_address name */
            name3: "required",
            /* #task_desc name */
            name4: "required",
            /* #task_price name */
            name5: "required"
        },
        messages: {
           name1: "please enter task name",
           name2: "please enter task city",
           name3: "please enter task address",
           name4: "please enter task desc",
           name5: "please enter task price",
       }
    });
});​

Django will prefix form fields with 'id_' in addition to any prefix you may have added to the form to prevent naming collisions between form classes with identical fields. Django会在表单字段前面加上“ id_”作为前缀,此外,您还可以在表单字段中添加任何前缀,以防止具有相同字段的表单类之间发生命名冲突。 I'm betting that you're simply referencing the fields by ID incorrectly. 我敢打赌,您只是错误地通过ID引用了字段。 Inspect the DOM of your rendered template with Firebug or similar inspection utility and make sure you're referencing the fields by the correct ID. 使用Firebug或类似的检查实用程序检查渲染模板的DOM,并确保您使用正确的ID引用了这些字段。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM