【问题标题】:Dynamic Form validation in yiiyii 中的动态表单验证
【发布时间】:2016-01-16 13:35:37
【问题描述】:

我似乎无法在 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;
      }
    }

【问题讨论】:

    标签: javascript php jquery validation yii


    【解决方案1】:

    validateOnSubmit 是布尔参数。如果您想对验证字段做一些事情,您可以使用:

    1. beforeValidate函数,在执行表单提交动作触发的基于ajax的验证之前将被调用的函数(仅当validateOnSubmit设置为true时可用)。预期的函数签名应该是beforeValidate(form) {...},其中'form' 是表单对象的jquery 表示。如果此函数的返回值不为真,则取消验证。
    2. afterValidate函数,表单提交动作触发的基于ajax的验证后将调用的函数(仅当validateOnSubmit设置为true时可用)。预期的函数签名应该是afterValidate(form, data, hasError) {...},其中'form'是表单对象的jquery表示; 'data' 是来自服务器端验证的 JSON 响应; 'hasError' 是一个布尔值,指示是否存在任何验证错误。如果该函数返回值不为真,则取消正常的表单提交。

    【讨论】:

      猜你喜欢
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 2023-03-14
      • 2019-12-11
      • 1970-01-01
      相关资源
      最近更新 更多