2016-01-16 245 views
0

我似乎無法獲取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

validateOnSubmit是布爾參數。如果你想要做與驗證你的域東西,你可以使用:

  1. beforeValidate功能,只會在validateOnSubmit設置爲true執行由表單提交動作觸發(提供基於AJAX的驗證之前被調用的函數)。期望的函數簽名應該是beforeValidate(form) {...},其中'form'是表單對象的jquery表示。如果此函數的返回值不正確,則驗證將被取消。
  2. afterValidate函數,執行由表單提交動作觸發的基於jax驗證後將調用的函數(僅在validateOnSubmit設置爲true時可用)。期望的函數簽名應該是afterValidate(form, data, hasError) {...},其中'form'是表單對象的jquery表示; 'data'是來自服務器端驗證的JSON響應; 'hasError'是一個布爾值,指示是否存在驗證錯誤。如果此函數的返回值不正確,則正常的表單提交將被取消。