【问题标题】:php and jquery form validationphp 和 jquery 表单验证
【发布时间】:2009-06-15 18:36:54
【问题描述】:

我正在按照link text 的教程设置验证

我的表单动作脚本如下:

<form method="POST" action="formproc_to_paypal.php" id="example"
     target="_self" onsubmit="CalcAmount (this); ReadForm(this);" name="example">

当我将操作行删除/更改为“”(如教程所示)时,验证工作正常。知道为什么该操作导致它无法验证吗?

  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script>
<style type="text/css">
label { width: 10em; float: left; }
label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }
p { clear: both; }
.submit { margin-left: 12em; }
em { font-weight: bold; padding-right: 1em; vertical-align: top; }
</style>
  <script>
  $(document).ready(function(){
    $("#example").validate();
  });
  </script>

【问题讨论】:

  • 可以发布更多细节,比如验证逻辑吗?我最初的猜测是您在提交时调用了两个验证函数,如果第一个有效,它将跳过第二个。但是没有细节就很难说了……
  • 迈克,你可能是对的。在我的 PHP 脚本中,我有一个类似的函数,PHP 脚本调用表单变量,然后将它们转发给 PayPal。这会干扰验证吗?
  • 我认为迈克是对的。您明确定义的 onsubmit 事件可能会破坏通过 jQuery 调用的 validate() 函数。试着把它们拿出来看看会发生什么?另请记住,本教程没有操作属性,因为它不是实时表单。通读文档的其余部分,因为“教程”并不是真正实现的好例子。
  • 这是有道理的——但如果我需要两个调用变量,我将如何拥有它们。这甚至可能吗?

标签: php jquery forms


【解决方案1】:

请务必在每次 javascript 调用后返回 false,否则当 javascript 完成后,将提交给操作。

这也是为什么它在没有指定操作的情况下起作用的原因。

【讨论】:

    【解决方案2】:

    类似的东西

    function validate(form){
     return(CalcAmount (form) && ReadForm(form));
    }
    

    请记住,这是一个非常快速的实现,您可能需要添加更多细节。一般的想法是有一个函数根据结果组合返回单个布尔值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多