我似乎无法在yii中使用javascript表单验证
我想将脚本指向用户表单并将其包含在clientOptions中,但它表示未定义validateform。
我试图让默认功能正常工作,但似乎无论如何都不能在Yii中验证动态创建的字段,而无需像这样创建自己的函数。我将知道这个特定实例的字段,所以我现在可以手动将它们放入
$form = $this->beginWidget('booster.widgets.TbActiveForm', array(
'id' => 'user-form',
'enableAjaxValidation' => true,
'clientOptions' => array(
'validateOnChange' => false,
'validateOnType' => false,
'validateOnSubmit' => 'js:validateForm',
),
));
?>
<?php
$varform = new DynamicForm();
$varform->attributes = $user->getDynamicFormConfig();
$varform->model_name = 'user';
echo $varform->run();
?>
JS
function validateForm()
{
var a=document.forms["#user-form"]["user_TestQuestion"].value;
var b=document.forms["#user-form"]["user_NEWQUESTION"].value;
if (a==null || a=="",b==null || b=="")
{
alert("Please Fill All Required Field");
return false;
}
}
答案 0 :(得分:0)
validateOnSubmit
是布尔参数。如果您想在验证字段上执行某些操作,可以使用:
beforeValidate
函数,在执行由表单提交操作触发的基于jax的验证之前将调用的函数(仅在validateOnSubmit设置为true时可用)。预期的函数签名应该是beforeValidate(form) {...}
,其中'form'是表单对象的jquery表示。如果此函数的返回值不为true,则验证将被取消。afterValidate
函数,在执行由表单提交操作触发的基于jax的验证后调用的函数(仅在validateOnSubmit设置为true时可用)。预期的函数签名应该是afterValidate(form, data, hasError) {...}
,其中'form'是表单对象的jquery表示; 'data'是来自服务器端验证的JSON响应; 'hasError'是一个布尔值,表示是否存在任何验证错误。如果此函数的返回值不为真,则正常表单提交将被取消。