如何使用liveValidation在提交时验证表单?

时间:2012-07-02 10:50:12

标签: php html livevalidation

我有以下代码来验证提交表单:

<form enctype='multipart/form-data' 
   action='ad_posting_process.php' 
   method='post'>
   Price: <input type=text name=price 
                  id="price" style=width:90px;>
<script type="text/javascript"> 
  var f3 = new LiveValidation('price');
  f3.add( Validate.Numericality );
</script>
Email: <input type=text name=email 
                  id="email" style=width:240px;>
<script type="text/javascript"> 
  var f20 = new LiveValidation('email');
  f20.add( Validate.Email );
</script>
<script type="text/javascript">
  var title = new LiveValidation( 'title', {onlyOnSubmit: true } );
  title.add( Validate.Email );
  var field2 = new LiveValidation( 'price', {onlyOnSubmit: true } );
  field2.add( Validate.Acceptance );
  var field3 = new LiveValidation( 'email', {onlyOnSubmit: true } );
  field3.add( Validate.Presence );
</script>
<input type=submit name=action value=Post>
</form>

电子邮件验证工作正常,但如何在提交时验证整个表单?

问候:

1 个答案:

答案 0 :(得分:3)

我对这个库并不是很熟悉,但似乎你应该可以通过简单地添加:

{onlyOnSubmit: true } 

作为要验证的每个元素的参数,例如:

var f20 = new LiveValidation('email');
f20.add( Validate.Email, {onlyOnSubmit: true });

你顺便看过这个页面吗?:http://livevalidation.com/examples#exampleForms

另外,您是否使用不同的脚本部分来验证每个元素(或者它们是否仅以这种方式剪切和粘贴?)。你可以在同一个Script-block中完成所有这些。

更新,扩展回答:

您可能尝试修复代码的一些问题,因为它们可能会导致JS出现问题:

  • 确保在所有字段周围使用“(双引号,而不是单引号!)”(如name =“price”等)
  • 你有一个名为“title”的字段,因为我看不到它 - 这可能导致脚本失败(?)。

确保以下列方式之一关闭每个html元素。

<input></input>
<input />

您的代码可能看起来像这样:

<form enctype="multipart/form-data"
  action="ad_posting_process.php" 
  method="post">

Price: <input type="text" name="price"
              id="price" style="width:90px;">
Email: <input type="text" name="email"
              id="email" style="width:240px;">

<script type="text/javascript"> 
var f3 = new LiveValidation('price');
  f3.add( Validate.Numericality );
  var f20 = new LiveValidation('email');
  f20.add( Validate.Email );
  var title = new LiveValidation( 'title', {onlyOnSubmit: true } );
  title.add( Validate.Email );
  var field2 = new LiveValidation( 'price', {onlyOnSubmit: true } );
  field2.add( Validate.Acceptance );
  var field3 = new LiveValidation( 'email', {onlyOnSubmit: true } );
  field3.add( Validate.Presence );
</script>
<input type="submit" name="action" value="Post" />
</form>

另外,请检查浏览器是否存在任何与javascript相关的错误。大多数现代浏览器都有js的某种形式的错误面板或调试工具。