yii2 - 如何在不掩盖规则值的情况下验证输入?

时间:2017-11-14 14:50:39

标签: javascript yii2 yii2-validation yii2-widget

我必须通过ajax验证输出值的一部分,不包括vask值,目前他获取了字段example.defesaserecursos.com.br(VALUE + MASK)字段中的所有内容。我想要在没有面具的情况下选择价值。

P.S。:我正在使用'enableClientValidation' => false,

我使用此代码:

<?= $form->field($model, 'subdominio', [
    'inputTemplate' => '<div class="form-material floating">{input} <label class="floating-label">Subdomínio (Seu link de divulgação para os clientes)</label></div>',
])->textInput(['maxlength' => 80,'minlength' => 40, 'autocomplete' => 'off', ])->widget(MaskedInput::className(), [
    'mask' => 'aaaa[aaaaaaaaaaa]\.\d\e\f\e\s\a\s\e\r\e\c\u\r\s\o\s\.\c\o\m\.\b\r',
    'clientOptions' => [
        'alias' =>  'decimal',
        /*'removeMaskOnSubmit' => true,*/
    ],
    'options' => [
        'class'=> 'form-control',

    ]
    ,
])->label(false) ?>

但我需要验证是否已存在具有此值的子域,但我保存时没有掩码值。

我在规则上使用此代码:

['subdominio', 'unique',
  'targetClass' => 'app\models\Empresa',
  'targetAttribute' => 'subdominio',
  'message' => 'Esse link já está em uso.'
],

所以我需要知道我是否可以在表单上放置一些东西来忽略掩码值,或者我是否更改了规则参数。

1 个答案:

答案 0 :(得分:0)

我解决了我的问题添加到规则行:

['subdominio', 'validaSUBDOMINIO'],

我在同一个文件中创建了删除“.defesaserecuros.com.br”的功能

function validaSUBDOMINIO() {
    if (strlen($this->subdominio) > 15){
        $this->subdominio = substr($this->subdominio, 0, strpos($this->subdominio, '.'));
    }
}

现在规则中的下一行将会起作用,因为不再有“.defesaserecursos.com.br”了。

['subdominio', 'unique',
            'targetClass' => 'app\models\Empresa',
            'targetAttribute' => 'subdominio',
            'message' => 'Esse link já está em uso.'
        ],
        ['subdominio', 'string', 'min' => 4],
        ['subdominio', 'string', 'max' => 15],

P.S。:对我的英语再次抱歉。