0

我在 Yii 项目视图中激活了我的 js 文件:

<?php
/* Register javascript */
Yii::app()->clientScript->registerScriptFile(Yii::app()->baseUrl . '/js/showHide.js');
?>

仍然在我看来,我有一个名为“tbo_sk”的复选框和一个名为“nilaiblksk”的文本字段

<?php echo $form->checkBox($model, 'tbo_sk'); ?>
<div style="display: none"><?php echo $form->textField($model, 'nilaiblksk'); ?></div>

我的问题是,我们如何在我的 showHide.js 文件中制作 javascript 代码,以便在我检查复选框时显示 textField,否则如果未选中则隐藏 textField?

在我的 div 标签中,我使用 style="display: none" 来隐藏 textField。

提前致谢!

4

2 回答 2

2

最好给你的 div 一个 ID 或 Class,而不是在 jQuery 中使用 parent():

<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>
于 2013-10-20T04:28:31.233 回答
1

然后在视图文件中添加以下代码:

在准备切换输入的文档上注册一个 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[nilaiblksk]”,无论您使用的是什么实际模型。

还有一件事,您必须更改 toggleInput 功能,例如,如果您只想将其设为只读或添加删除 css 类

于 2013-10-20T05:47:11.583 回答