繁体   English   中英

jQuery Ajax和脚本形式验证

[英]Jquery Ajax and Scriptaculous Form Validation

我有一个使用脚本形式验证的表单,但是我正在使用jquery ajax。 在添加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>

但是,当我一起从页面中删除Ajax时,它的效果很好。 该页面验证。 谁能告诉我如何确保在ajax提交之前进行表单验证。 我尝试了jquery延迟,但这也不起作用。 谢谢。

为什么不添加验证作为.submit()的第一件事? 这样,无论有多少个表单字段都具有焦点,您都可以确保表单已通过验证。

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

2.听起来您的脚本中没有“防止默认设置”。 您必须做两件事:清除输入和显示错误的div,然后再加载它们!


数字2:您可以将ajax提交替换为放在其中的jQuery提交

`"$(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验证中,如果输入正确且格式有效,则回显“是”,否则回显“否”。 或您想要的其他任何单词。 这也允许更大的灵活性。 编辑以上内容以适合您的需求。 根据需要添加变量,这样,一切都将是jQuery。 如果您想查看有效的示例,请给我发送私人消息,我将向您确切演示它的工作方式。 使用上面的代码,我从来没有任何问题。 据我所知,jQuery在发送发布请求之前还自动清理了输入,这为您提供了某种形式的安全性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM