Я активировал свой файл js в своем представлении проекта Yii:
<?php
/* Register javascript */
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/showHide.js');
?>
все еще, на мой взгляд, у меня есть checkbox с именем tbo_sk и textField с именем 'nilaiblksk'
<?php echo $form->checkBox($model, 'tbo_sk'); ?>
<div style="display: none"><?php echo $form->textField($model, 'nilaiblksk'); ?></div>
Мой вопрос заключается в том, как мы создаем код javascript в моем файле showHide.js, чтобы показать текстовый экран, когда я проверяю checkbox, иначе не скрывайте textField, если он не установлен?
В моем теге div я использую стиль = "display: none", чтобы скрыть textField.
Заранее спасибо!
Лучше дать вашему div идентификатор или класс, а не использовать parent() в jQuery:
<div id="hiddenDiv" style="display: none"><?php echo $form->textField($model, 'nilaiblksk'); ?></div>
<script>
$(document).ready(function(){
$('#MODELNAME_tbo_sk').change(function(){
$('#hiddenDiv').toggle(); // or do $('#MODELNAME_nilaiblksk').parent().toggle();
});
});
</script>
Затем в файле вида добавьте следующий код:
Зарегистрируйте функцию jquery на документе, готовом для переключения ввода:
$buttonToggler= <<<JS
toggleInput=function(src,inputName){
if(src.checked){
$(src.form[inputName]).removeProp('disabled');
}else{
$(src.form[inputName]).prop('disabled','disabled');
}
}
JS;
Yii::app()->clientScript->registerScript('toggleFormInputs',$buttonToggler, CClientScript::POS_READY);
Добавить функцию в событие изменения флажка:
echo $form->checkBox($model,'tbo_sk',
array('onchange'=>'js:toggleInput(this,"ModelName[nilaiblksk]")'));
echo $form->textField($model,"nilaiblksk");
вы должны заменить фактическое название модели, например "ModelName [nilaiblksk]", например, для модели post это будет "Post [nilaiblksk]", независимо от фактической модели, которую вы используете.
Еще одна вещь: вам нужно изменить функцию toggleInput, например, если вы хотите сделать это только для чтения или добавить remove css class