从控制器动态启用/禁用输入文本

时间:2012-09-08 06:16:07

标签: php javascript codeigniter

我是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']:""?>"/>

2 个答案:

答案 0 :(得分:3)

在您的javascript中:

  • .disabled不是.disable
  • 将PHP包装在引号中。
  • 你打电话给validation()吗?如果没有,此代码将永远不会执行。

在你的html中:

disabled="disabled"不是disabled="disable"

您的评论后更新:

你确定在这里甚至需要使用吗?我的意思是,你似乎允许客户做出服务器乐意做的决定。

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

一起废弃javascript。 (我放弃了你的isset()电话,如果你确实需要它,请把它扔回去)

答案 1 :(得分:2)

在它周围加上引号

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

所以它会导致

var temp = "add";

而不是

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