Php Jquery Ajax和Scriptaculous表单验证

Php Jquery Ajax和Scriptaculous表单验证,php,jquery,ajax,scriptaculous,Php,Jquery,Ajax,Scriptaculous,我有一个使用scriptaculous表单验证的表单,但我使用的是jQueryAjax。在添加ajax之前,表单验证工作正常。一旦我添加了ajax,就好像表单不再进行验证一样。ajax只是在没有验证的情况下对表单进行汇总。这就像ajax绕过了验证一样 <script type="text/javascript"> jQuery('form').delay(3000).submit(function() { string = jQuery("form

我有一个使用scriptaculous表单验证的表单,但我使用的是jQueryAjax。在添加ajax之前,表单验证工作正常。一旦我添加了ajax,就好像表单不再进行验证一样。ajax只是在没有验证的情况下对表单进行汇总。这就像ajax绕过了验证一样

      <script type="text/javascript">
      jQuery('form').delay(3000).submit(function() {
      string = jQuery("form").serializeArray();

      jQuery.ajax({
    type: "POST",
    url: "../script_insert.php",
    data: string,
    dataType: "html",
    success: function(html){
      jQuery('#Right_Content').hide().html(html).fadeIn("slow");;

       }
       })
       return false;
       });
       </script>

jQuery('form')。延迟(3000)。提交(函数(){
string=jQuery(“表单”).serializeArray();
jQuery.ajax({
类型:“POST”,
url:“../script\u insert.php”,
数据:字符串,
数据类型:“html”,
成功:函数(html){
jQuery('#Right_Content').hide().html(html).fadeIn(“slow”);;
}
})
返回false;
});

但是当我将ajax从页面中全部删除时,它工作得很好。该页面将进行验证。有人能告诉我如何确保表单验证在ajax提交之前进行吗。我尝试了jquery延迟,但这也不起作用。谢谢。

为什么不将验证作为
.submit()
所做的第一件事来添加呢?这样,无论有多少表单字段具有焦点,都可以确保表单得到验证

jQuery('form').submit(function() {
    if (validate()) {
        string = jQuery("form").serializeArray();
        ...
    } else {
        return false;
    }
});
  • 为了防止进一步的错误,我建议您对提交使用绝对路径。使用完整路径
    “url=”而不是
    url=“../script\u insert.php”
    http://www.yoursite.com/script_insert.php“

  • 2.听起来你的脚本中没有“阻止默认值”。你必须做两件事:在加载输入和显示错误的div之前清除它们


    第2点:可以将ajax提交替换为放置在

    `"$(document).ready(function(){
    $('#your_form').submit(function(){
    $.post("http://your_site.com/script_insert.php",{ first_variable:$('#first_input_field').val(),second_variable:$('#second_input_field').val(),rand:Math.random()},function(data){
    if(data=='yes'){do something}
    if(data=='no'){do something else}});
    return false;});
    });
        });'
    

    在PHP验证中,如果输入正确且表单有效,则执行echo“yes”和echo“no”“否则。或者任何你想要的词。这也允许更大的灵活性。编辑以上内容以满足您的需要。根据需要添加变量,这样一切都将是jQuery。如果你想看到一个有效的例子,给我发一条私人信息,我会告诉你它是如何工作的。使用上面的代码,我从来没有遇到过任何问题。据我所知,jQuery还可以在发送post请求之前自动清理输入,这为您提供了某种形式的安全性。

    Fyi,您只需编写长
    jQuery
    一次:
    (函数($){/*your code*/})(jQuery)-在该函数中,您可以放置代码并使用
    $
    。如果您需要
    $
    访问例如Prototype,您至少可以将
    $j
    用于jQuery-可读性更强,写起来更少。谢谢。我第一次一起使用jquery和scriptaculous,所以仍然在学习关于冲突的规则。谢谢。我的建议是:扔掉原型/脚本。几乎所有您可以想象的东西都可以用于jQuery。对于验证,有一个例子。@ThiefMaster我没有使用Basistance的唯一原因是因为我无法在blur上验证它。您知道如何让它在blur上进行验证,而不仅仅是在提交时进行验证吗?我很想保留jquery的所有内容。谢谢