1

我在让 jQuery bassassistance 验证插件工作时遇到了一点问题。首先,我将向您指出正在开发的相关站点。开发现场。我是中国的一名 ESL 老师,所以该网站是中文的,以便解决问题:

  • 页面左上角有两个按钮,点击第一个
  • ajax 请求完成后,将弹出一个带有登录表单的模式对话框

麻烦就在这里。简而言之,我无法让验证插件正常工作。已经定义了一些额外的验证方法,firebug 告诉我它们已加载到对象中。即使我设置规则来查找所需的内容,它仍然不会返回任何内容,甚至不会返回错误。我可以使用控制台调用 validate 并且它确实有效,但同样,除了返回对象之外没有任何反馈。这个问题真的让我摸不着头脑

操作流程的简化时间表如下:

  1. 调用页面时,会设置一个类型,在本例中为 form
  2. 向返回 xml 的服务器发出请求
  3. 任何额外的样式表和脚本文件都会被下载并注入到 head 中。#作品#
  4. 验证规则位于我的 pagecontroller 类中以 json 形式存储的 xml 节点中。帖子末尾的示例。此响应是浏览器安全的,当前转换为对象
  5. 在弹出对话框并注入表单后,调用了一个名为 formentities attach 的函数#works#
  6. 该函数的最后一部分是将验证函数附加到表单,它使用从服务器发回的规则

    /* Attach validation to the button class used for submit*/
    $(".form-submit").live("click", function(event){
       event.preventDefault();
       event.stopImmediatePropagation();
       /* Perform the actual validation */
       $("#"+params.strFormName).validate({
          /* As defined from ajax call */
          rules: params.objValidation,
          /* Custom function to prevent default send */
          submitHandler: function(form) {
             /* Now the form has passed script validation, set it as inactive */
             var strFormName = form.id;
             params.strRequestType = "formresponse";
             params.strRequestMethod = "POST";
             params.strRequestURL = $("#"+strFormName).attr("action") + '&ajax_type=formresponse'; 
             params.strRequestParameters = $("#"+strFormName).serialize();
             methods.requestpage();
          }
       });                  
    });
    

任何指针将不胜感激。感谢您阅读这个问题

4

1 回答 1

0

如果您重新排序代码然后调用该valid方法怎么办?

// You need to create the validation object first and initialize it.
$("#"+params.strFormName).validate({ // This method doesn't "validate" it instantiates.
      /* As defined from ajax call */
      rules: params.objValidation,
      /* Custom function to prevent default send */
      submitHandler: function(form) {
         /* Now the form has passed script validation, set it as inactive */
         var strFormName = form.id;
         params.strRequestType = "formresponse";
         params.strRequestMethod = "POST";
         params.strRequestURL = $("#"+strFormName).attr("action") + '&ajax_type=formresponse'; 
         params.strRequestParameters = $("#"+strFormName).serialize();
         methods.requestpage();
      }
   });                  

/* Attach validation to the button class used for submit*/
$(".form-submit").live("click", function(event){
   event.preventDefault();
   event.stopImmediatePropagation();
   /* Perform the actual validation */
   $("#"+params.strFormName).valid(); // Call the valid method here to see check if form is valid
});

一点文档永远不会受到伤害。

于 2012-09-03T04:42:18.393 回答