动态启用/禁用来自控制器的输入文本


dynamically enabling/disabling a input text from controller

我是PHP新手,使用CI:D现在我有一个视图user_form_v和它的控制器user在我的控制器中,我试图传递一个字符串变量名$validate,我将在我的视图中用javascript验证它,所以如果$validate == add,我将启用我的输入文本。这是我的javascript(不工作):

<script type="text/javascript">
        function validation(){
            var temp = <?php echo $validate?>
            if (temp == "add")document.getElementById("id").disable = false;
        }
    </script>

这是我的输入文本,默认为DISABLED:

<input id="id" type="text" name="ID_user" class="text" disabled="disable"
                value="<?php echo (isset($user['ID_user']))?$user['ID_user']:""?>"/>

答案:根据选择的答案,这里不需要Javascript(对不起,我不需要),所以我们只需要添加以下内容:<?php if($validate!='add'){echo "disabled";} ?>,如果他们选择更新,我的输入文本将被禁用。但是它不能与disabled="disabled"一起使用(我不知道为什么)因此,这是动态输入文本的最终代码:<input type="text" name="ID_user" class="text" <?php if($validate!='add'){echo "disabled";} ?> value="<?php echo (isset($user['ID_user']))?$user['ID_user']:""?>"/>

在您的javascript中:

  • .disabled而非.disable
  • 用引号括住你的PHP
  • 你在给validation()打电话吗?否则,此代码将永远不会执行

在您的html中:

disabled="disabled"而非disabled="disable"

评论后更新:

你确定这里甚至需要javascript?我的意思是,你似乎允许客户端做出服务器愿意做的决定

<input id="id" type="text" name="ID_user" class="text" value="<?= $user['ID_user']?>" <? if($validate!=='add'){echo "disabled";} ?>/>

并将javascript全部废弃。(我放弃了你的isset()呼叫,如果你真的需要,就把它扔回去)

在周围加引号

var temp = "<?php echo $validate ?>";

因此它将导致

var temp = "add";

而不是

var temp = add; // Error: undefined variable add