2010-10-25 49 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