文本字段强制基于单选按钮选择 - Yii2 [英] Textfield Mandatory On basis of radio button selection- Yii2
问题描述
我有两个值的单选按钮,即个人和公司.我正在寻找一种场景,如果选择了具有 Firm 值的单选按钮,则 CompanyName
文本输入应作为强制(必需)字段.And, when radio button having value Individual is selected, Then CompanyName
textinput should act as Optional field.
我不知道该怎么做.我试图在 CompanyName 文本输入中添加 addAttribute 作为强制性.但它不起作用,因为 RegisterForm.php
(模型)指定的规则很少.
所以,知道怎么做.我不明白.有什么帮助吗?
register.php(查看)
'register-form']);?>...<?= $form->field($model, 'AdminType')->radioList(array('Individual'=>'个人', '公司'=>'公司/公司/员工组'))->label('你是你吗')?><?= $form->field($model, 'CompanyName')->textInput()->label('Company Name') ?><div class="form-group"><?= Html::submitButton('Register', ['class' => 'btn btn-success', 'name' => 'register-button' ]) ?>
<?php ActiveForm::end();?><脚本>$('input[type="radio"]').click(function(){if($(this).attr("value")=="公司"){$('#registerform-companyname').addAttribute("required");}});
RegisterForm.php(模型)
'密码'],['验证码','验证码'],];}
终于明白了,
['company_name', 'required', 'when' =>功能($模型){return ($model->user_type == 'Firm' ? true : false);}, 'whenClient' =>功能(属性,值){return $('input[type=\"radio\"][name=\"Users[user_type]\"]:checked').val() == 'Firm';}"],
I'm having radio button with two value i.e, Individual and Firm.
I am looking for one scenario where if radio button having value Firm is selected, then CompanyName
textinput should act as mandatory (required) field. And, when radio button having value Individual is selected, Then CompanyName
textinput should act as Optional field.
I was not getting how to do it. I tried to add addAttribute in CompanyName textinput as mandatory. but it didn't worked as RegisterForm.php
(model) is having few rules specified.
So, any idea how to do it. I'm not getting. Any help ?
register.php (view)
<?php $form = ActiveForm::begin(['id' => 'register-form']); ?>
.
.
.
<?= $form->field($model, 'AdminType')
->radioList(array('Individual'=>'An Individual', 'Firm'=>'Firm/Company/Group of Employees'))
->label('Are You')?>
<?= $form->field($model, 'CompanyName')->textInput()->label('Company Name') ?>
<div class="form-group">
<?= Html::submitButton('Register', ['class' => 'btn btn-success', 'name' => 'register-button' ]) ?>
</div>
<?php ActiveForm::end(); ?>
<script>
$('input[type="radio"]').click(function()
{
if($(this).attr("value")=="Firm")
{
$('#registerform-companyname').addAttribute("required");
}
});
</script>
RegisterForm.php (model)
<?php
namespace app\models;
use Yii;
use yii\base\Model;
use kartik\password\StrengthValidator;
class RegisterForm extends Model
{
public $fname;
public $lname;
public $email;
public $password;
public $confirmPassword;
public $AdminType;
public $CompanyName;
public $verifyCode;
public function rules()
{
return [
[['fname','lname', 'email', 'password','confirmPassword','verifyCode','AdminType'], 'required'],
['email', 'email'],
['confirmPassword', 'compare', 'compareAttribute' => 'password'],
['verifyCode', 'captcha'],
];
}
At last I Got,
['company_name', 'required', 'when' => function($model){
return ($model->user_type == 'Firm' ? true : false);
}, 'whenClient' => "function (attribute, value) {
return $('input[type=\"radio\"][name=\"Users[user_type]\"]:checked').val() == 'Firm';
}"],
这篇关于文本字段强制基于单选按钮选择 - Yii2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!