2012-07-11 74 views
0

我有以下代码来验证使用jquery的表单我不知道为什么它不工作?使用jquery验证django中的表单

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" 
    }); 
}); 

回答

0

Django会前缀,除了你可能已经添加到表单中的任何前缀“ID_”表单字段,以防止命名表单类之间的碰撞具有相同的字段。我敢打赌,你只是简单地用ID来引用字段。使用Firebug或类似的检测工具检查您的渲染模板的DOM,并确保您通过正确的ID引用字段。

1

根据jQuery Validation plugin documentation您必须使用messages而不是message

该插件也适用于整个表单,而不是一次一个表单域,请仔细阅读文档。

按照文档这样的事情应该为你工作:

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", 
     } 
    }); 
});​