Cakephp创建秘密输入的最佳方式

时间:2013-08-15 12:39:48

标签: php javascript jquery cakephp

好的,我有一个有两个选项的组合框。

现在,如果选择了其中一个选项,则应显示新的输入字段。

        echo $this->Form->input('group_id', array( 'id' => 'groupId'));
    echo $this->Form->input('clientid',array( 'type' => 'hidden', 'id' => 'id_client',));

为此我会使用Jquery来检查值

    <script>
$(document).ready(function () {
       $("#groupId").change(function () {
            if($(this).val() == 2){
                // do set visible
            }
        })
      });
</script>

我的问题是:如何将字段类型更改为可见?我试过了:$('#groupId').show();$('#clientid').get(0).type = 'text';

但似乎没有工作,我开始怀疑这是否是做这种事情的最佳方式?

2 个答案:

答案 0 :(得分:2)

$(this).attr('type',  'text');

答案 1 :(得分:1)

你做错了。

type="hidden"不适合隐藏UI元素(表单字段或其他任何内容)。

您应该使用CSS属性display。将您的clientid输入类型更改为"text"。如果groupId不是2,请在display: none输入上设置clientid。当它为2时,设置display: block

使用jQuery,您可以使用$('#clientid').show().hide()

例如:

<select id="groupId"><!-- options... --></select>
<input type="text" id="clientId" />

<script>
$(document).ready(function () {
  function showHideClient() {
    var show_client = $(this).val() == 2;
    $("#clientId").toggle(show_client);  // hide or show
  }

  // we bind the "change" event to the hide/show checking
  $("#groupId").change(showHideClient);
  // and we call it at page load to hide the input right away if needed
  showHideClient();

});
</script>