通过提交按钮添加验证

时间:2009-07-02 12:02:08

标签: jquery validation cakephp

我在我的应用程序中使用Cakephp和JQuery。    我使用

创建了表单
<?php
 echo $form->create('Result',array('action'=>"submit/$formid"));

 foreach ($viewfields as $r): 
 echo $form->input($r['Attribute']['label'], array('id'=>$r['Attribute']['id'],'name'=>$r['Attribute']['label'],'type'=>'text'));
  endforeach; 
 echo $form->end('submit');?>

这将创建一个带有id的表单,例如... ResultSubmit1Form,其中1是formid

当我点击提交按钮时,它会正确提交数据。   但是我想添加JQuery验证,因为这些字段都不是空的。

我尝试了一些例子但它没有用。我怎么能这样做.....请建议我..

编辑:

我用

尝试了
  $("#ResultSubmit/$formidForm").submit(function(event){
   event.preventDefault();
  /* do validation of fields */
  if($("#"+<?=$r['Attribute']['id'];?>).fieldValue()==""){alert("Fill in  "+"<?=$r['Attribute']['label'];?>");
            $("#"+<?=$r['Attribute']['id'];?>).focus();
     }
  });

但没有任何作用,这根本没有进入事件......

2 个答案:

答案 0 :(得分:3)

更新后的响应......

你试图将PHP与Javascript混合,这是行不通的。以这一行为例:

$("#ResultSubmit/$formidForm")

您将其打印为纯文本js代码,意味着$formidForm不被理解为包含值的变量,它被处理为“dollar-sign formidform”。如果你想打印PHP值,你必须做类似的事情:

$formidForm = "#userDetails";
$("<?php print $formidForm; ?>") /* $("#userDetails") */

现在它在<?php?>之内,您的服务器知道将该特定部分解释为PHP,而不是纯文本。

至于你的其他js代码,当你从浏览器的网页上复制/粘贴它时会是什么样子?

原始回复......

您可以将检查绑定到表单的.submit()事件:

$("#myForm").submit(function(event){
  event.preventDefault();
  /* do validation of fields */
});

您也可以从使用Validation Plugin中受益。

答案 1 :(得分:1)

我正在使用jquery validation plugin,其documentation也很好。它对我来说就像魅力一样