Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 验证ajax返回的表单_Php_Jquery_Ajax - Fatal编程技术网

Php 验证ajax返回的表单

Php 验证ajax返回的表单,php,jquery,ajax,Php,Jquery,Ajax,如果我有一个页面有一个ajax链接,并且代码返回一个需要验证的表单,那么我应该把验证代码放在哪里呢。假设我的表单使用jquery验证插件进行了此验证 jQuery(document).ready(function() { $("#basicForm").validate({ showErrors: function(errorMap, errorList) { // Clean up any tooltips for valid elements $.e

如果我有一个页面有一个ajax链接,并且代码返回一个需要验证的表单,那么我应该把验证代码放在哪里呢。假设我的表单使用jquery验证插件进行了此验证

jQuery(document).ready(function() {

  $("#basicForm").validate({

    showErrors: function(errorMap, errorList) {

      // Clean up any tooltips for valid elements
      $.each(this.validElements(), function(index, element) {
        var $element = $(element);

        $element.data("title", "") // Clear the title - there is no error associated anymore
          .removeClass("error")
          .tooltip("destroy");
      });

      // Create new tooltips for invalid elements
      $.each(errorList, function(index, error) {
        var $element = $(error.element);

        $element.tooltip("destroy") // Destroy any pre-existing tooltip so we can repopulate with new tooltip content
          .data("title", error.message)
          .addClass("error")
          .tooltip(); // Create a new tooltip based on the error messsage we just set in the title
      });
    },

    submitHandler: function(form) {

      var myselect = $('select[name=ddCustomers]');
      //alert(myselect.val());
      window.location.replace("customer.php?customer_id=" + myselect.val());
    }
  });
  $("#basicForm").removeAttr("novalidate");
});
我应该把它放在哪里作为文档。准备好了,我通常会把它放在哪里。这个代码已经被调用了

我希望这是有道理的

我可以把它放在初始页面加载的页面上,以便在表单返回时准备好吗

我已经读过,我可以在文档中进行验证。关于函数,但我不太理解。我是否会将类似的内容与ajax响应一起发布以进行验证

$(document.body).on('click', '#basicForm', function(){
    $("#basicForm").validate({
        submitHandler: function() {
        // do whatever you need here
        } 
    }); 
});
谢谢你的帮助。这让人困惑,我在谷歌上找不到一个像样的例子

编辑

我知道如何为动态生成的表单编写验证代码,因此感谢您的回答,但我对此没有问题。问题是我应该将代码放在ajax返回中的什么位置? 也许我有一个误解,但我使用的是jquery验证模块基础帮助,我只见过在doc中调用的`表单验证方法'。在第一页就准备好了-从来没有ajax回发

准备好了吗

选择权

1硬编码的页面已经在为ajax注入表单编写了吗?不够动态-注入的表单是动态创建的,因此可能需要进行验证 是 2将验证代码添加到

文件

当我为新表单执行ajax回发时?这可能吗?我不是一个客户端程序员

我感到困惑的是,这样一个常见的场景没有设计模式。虽然我读过通过ajax发回的表单,但这是一个糟糕的做法,因为它会混淆浏览器和现在ajax编写的内容,所以也许这就是我找不到解决方案的原因


谢谢

我用jquery编写和开发了许多web应用程序,php是服务器端脚本。我形成的方式是将jquery代码和html放在同一个页面上,因为jquery需要检查html元素,并使用正确的错误消息进行响应,并在提交form-process.php之前清理所有数据字段(例如,如果这是服务器端脚本的名称)

拥有:

$(document.body).on('click', '#basicForm', function(){
    $("#basicForm").validate({
        submitHandler: function() {
        // do whatever you need here
        } 
    }); 
});
代码与如下页面相同:create-username.html或create-username.php页面 html元素。有些人更喜欢将jquery放在底部,这取决于您如何使用 页面是结构化的,但我喜欢将js放在旧实践的顶部,尽管有时候它不适用于jquery


在同一块中包含工具提示代码。我不喜欢到处都有jquery;如果出现错误,或者您需要在将来的引用中进行修改,那么编辑、添加或修复代码并不难。我希望这有帮助

您需要首先初始化验证插件并设置所需的规则。然后,当用户提交表单时,请防止默认表单提交行为,如果根据您设置的规则的标准成功验证了所有内容,则可以使用ajax将表单手动提交到服务器

 $('#basicForm').validate({ // initialize the plugin
        rules: {
            field1: {
              required: true,
              email: true
          },
           field2: {
               required: true,
               minlength: 5
          }
      }
  });

$('document').on('submit', '#basicForm', function(e){   
    if($(this).valid()){
           //client side is valid, make ajax call
    }
    e.preventDefault(); 
});

我在您发布的代码中没有看到任何ajax。基本上,您希望使用JavaScript在客户端尽可能多地进行验证。一旦客户端通过验证,那么ajax调用应该在服务器端进行验证,如果一切正常,则更新数据库。客户端验证是为了用户体验,服务器端验证是为了业务逻辑和数据库兼容性。我想在客户端验证它,但我不知道将验证表单的代码放在客户端的何处。你可以将document.body样式的侦听器放在几乎任何地方。一旦您将其附加到正文,它将侦听现有表单以及将来可能附加到正文的任何表单。因此,我是在进行ajax调用的第一页添加它,还是在ajax调用中覆盖它,因为它是动态的,具有可操作性?我可以这样做吗?例如,在新表单下添加类似的内容我可以返回此代码是我对新表单的ajax响应,并在courseNo页面上获得它。不,你不应该在ajax响应中返回javascript代码。我所访问的网站在一个页面上有对服务器的每次调用。整个网站都是一页接一页的,我的意思是在表单回调之前加载第二个表单时,页面上会有第二个表单的验证代码,但是表单是动态的,所以验证也应该是动态的