文本字段强制基于单选按钮选择 - Yii2 [英] Textfield Mandatory On basis of radio button selection- Yii2

查看:21
本文介绍了文本字段强制基于单选按钮选择 - 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆