好的,我有一个有两个选项的组合框。
现在,如果选择了其中一个选项,则应显示新的输入字段。
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';
但似乎没有工作,我开始怀疑这是否是做这种事情的最佳方式?
答案 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>