добавить ява-скрипт событие в textInput в форме?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
iamguruman
Сообщения: 236
Зарегистрирован: 2018.05.10, 08:26

добавить ява-скрипт событие в textInput в форме?

Сообщение iamguruman »

Здравствуйте

есть поле в форме

Код: Выделить всё

<?= $form->field($model, 'job_load_time')->textInput() ?>
при изменении этого нужно (в форме удалили или изменили содержание - событие onChange) нужно чтобы обнулялось другое текстовое поле в форме :

Код: Выделить всё

<?= $form->field($model, 'job_load_value')->textInput()?>
1) как прописать в field($model, 'job_load_time')->textInput() чтобы добавилось событие с ява скриптом onChange = "id.job_load_value = '';"

?

2) как правильно прописать наименование id для поля job_load_time?
iamguruman
Сообщения: 236
Зарегистрирован: 2018.05.10, 08:26

Re: добавить ява-скрипт событие в textInput в форме?

Сообщение iamguruman »

нашел свою ошибку

Код: Выделить всё

$form->field($model, 'job_load_time')->textInput(['type' => 'number', 'step' => '0.1',
        'onChange' => "document.getElementById('mpersonloadjob-job_load_value').value='';"])
может быть как-то еще можно сделать? например чтобы наименование поля id формировалось из модели формы?
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: добавить ява-скрипт событие в textInput в форме?

Сообщение maleks »

Для id есть \yii\base\Html::getInputId($model, $attribute)

Но кстати зачем вы вот так хардкодите в inline? Кода такого совсем мало?
Я всегда если форме нужен дополнительный js завожу ассет, соответственно зависящий от jQuery, и нет никакой потребности в нативном js для dom
Yii2 universal module sceleton - for basic and advanced templates
iamguruman
Сообщения: 236
Зарегистрирован: 2018.05.10, 08:26

Re: добавить ява-скрипт событие в textInput в форме?

Сообщение iamguruman »

maleks писал(а): 2020.10.03, 06:34 Для id есть \yii\base\Html::getInputId($model, $attribute)

Но кстати зачем вы вот так хардкодите в inline? Кода такого совсем мало?
Я всегда если форме нужен дополнительный js завожу ассет, соответственно зависящий от jQuery, и нет никакой потребности в нативном js для dom
пожалуйста, а можно пример?
iamguruman
Сообщения: 236
Зарегистрирован: 2018.05.10, 08:26

Re: добавить ява-скрипт событие в textInput в форме?

Сообщение iamguruman »

iamguruman писал(а): 2020.10.02, 14:42 нашел свою ошибку

Код: Выделить всё

$form->field($model, 'job_load_time')->textInput(['type' => 'number', 'step' => '0.1',
        'onChange' => "document.getElementById('mpersonloadjob-job_load_value').value='';"])
может быть как-то еще можно сделать? например чтобы наименование поля id формировалось из модели формы?
а можно ли как-то прописать в правилах валидации step?
пример

Код: Выделить всё

public function rules()
    {
        return [

            [['job_load_value'], 'integer', 'max' => 100, 'step' => '1'],
            [['job_load_time'], 'number', 'max' => 10, 'step' => '0.01'],
            
у меня ошибка Setting unknown property: yii\validators\NumberValidator::step
поидее это не задача валидатора конечно... но с другой стороны так удобно )
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: добавить ява-скрипт событие в textInput в форме?

Сообщение maleks »

iamguruman писал(а): 2020.10.03, 08:18 пожалуйста, а можно пример?
как ассеты делать есть в документации.

Насчет step, не знаю что это у вас. Для применения разных правил валидации есть сценарии и when
Yii2 universal module sceleton - for basic and advanced templates
Ответить