0

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

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

        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';

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

4

2 回答 2

2
$(this).attr('type',  'text');
于 2013-08-15T12:43:59.163 回答
1

你这样做是错的。

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

您应该改用 CSS 属性displayclientid将输入类型更改为"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>
于 2013-08-15T12:49:12.207 回答