如何在 Yii javascript 中使用复选框隐藏或显示文本字段


how to Hide or Show textField using checkBox in Yii javascript

我已经在我的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。

提前感谢!

最好给你的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>

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

在准备切换输入的文档上注册一个 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]",无论您使用的实际模型如何。

还有一件事,你必须改变切换输入函数,例如,如果你可能只想让它只读或添加删除css类