2012-07-11 109 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", 
     } 
    }); 
});​