在使用 activeForm 生成表单及验证时,默认是按照 model 里的 rules 生成js验证,model 验证在加载完页面后生效,不可修改,如果需要扩展、动态验证,需要使用js来配合
直接上Dome吧:
$('#returnmanualform-refundway input[type="radio"]').on('click', function(){ if($(this).is(':checked') && $(this).val()==3){ $('.account-info').removeClass('hidden'); // 添加验证规则 $('#w0').yiiActiveForm('add', { "id": "returnmanualform-bankname", "name": "bankName", "container": ".field-returnmanualform-bankname", "input": "#returnmanualform-bankname", "validate": function(attribute, value, messages, deferred, form) { yii.validation.required(value, messages, { "message": "转账银行不能为空。" }); } }); $('#w0').yiiActiveForm('add', { "id": "returnmanualform-bankaccount", "name": "bankAccount", "container": ".field-returnmanualform-bankaccount", "input": "#returnmanualform-bankaccount", "validate": function(attribute, value, messages, deferred, form) { yii.validation.required(value, messages, { "message": "转账账号不能为空。" }); } }); $('#w0').yiiActiveForm('add', { "id": "returnmanualform-bankusername", "name": "bankUserName", "container": ".field-returnmanualform-bankusername", "input": "#returnmanualform-bankusername", "validate": function(attribute, value, messages, deferred, form) { yii.validation.required(value, messages, { "message": "用户名不能为空。" }); } }); }else{ $('.account-info').addClass('hidden'); // 移除验证规则 $('#w0').yiiActiveForm('remove', "returnmanualform-bankname"); $('#w0').yiiActiveForm('remove', "returnmanualform-bankaccount"); $('#w0').yiiActiveForm('remove', "returnmanualform-bankusername"); } });