2010-10-25 56 views

回答

2

不能可靠地改变输入的type,但您可以创建一个新的元素和复制的IM在不同的属性:

$(document).ready(
function(){ 
    $('<input type="text" />') 
    .appendTo('form') 
    .val($('input:hidden[name=nameOfHiddenElement]').val()) 
    .attr('name','nameAsAppropriate') 
    .remove('input:hidden[name=nameOfHiddenElement]'); 
} 
); 

Link to a (basic) JS Fiddle demo

0

我会建议不要创建<input type="hidden" />,然后试图笨拙地将其转换为你之后的类型。相反,使用你需要的任何类型(文本,选择等)创建它,并使用CSS来隐藏它。

在您看来,例如:

<style type="text/css"> 
input.hidden { display: none; } 
</style> 
<?php echo $this->Form->input('Model.fieldName', array('type'=>'text','class'=>'hidden'))?> 

然后,在你的AJAX回调,显示输入:

$.ajax('/ajax/url/here', {}, function(response, status){ 
    // perform your field population, then... 
    $('input.hidden').show(); 
}); 
+0

有CakePHP中执行此操作的最简单的方法? – juan 2010-10-28 15:51:53