2013-01-14 28 views
3

我正在使用CakePHP 2.2.4。cakephp表單輸入沒有名稱屬性

我使用窗體幫助器來創建窗體。我需要一個沒有名字屬性的表單輸入。

這是可能與formhelper或我應該只使用HTML來創建此表單?

例如,在HTML:

<input type="text" maxlength="20" autocomplete="off" class="card-number stripe-sensitive required" /> 

基本上我是否能做到上述使用的CakePHP的表單助手?

謝謝。

回答

9

您可以否決$options數組中的任何屬性,這是input()方法的第二個參數。因此從技術上講,你可以這樣做:

echo $this->Form->input('Model.field', array(
    'label' => false, 
    'div' => false, 
    'name' => false, 
    'maxlength' => 20, 
    'autocomplete' => 'off', 
    'class' => 'card-number stripe-sensitive' 
)); 

但是請注意下料的name屬性使得整場無用的,如果你想用它做的在你的控制器/模型數據任何東西,因爲$this->data陣列得到它的名字來自輸入字段的名稱屬性。

+0

@bfavaretto由於'div'設置爲false,因此不會添加包裝div。 –

+0

@BorislavSabev我說過在Oldskool之前加了這個答案。 – bfavaretto

+0

@bfavaretto ok,好的。沒有感情的人。只是澄清將來要看這個的其他人。 ;) –

1

CakePHP需要name屬性才能知道表單提交的內容。我不知道爲什麼你會希望那裏沒有名字屬性。

如果您擔心命名輸入會將某些內容傳遞給保存方法,您可以在控制器中始終使用unset,以便在保存/驗證之前將其從$ this-> request-> data中刪除。否則,您可以手動將標記添加到您的視圖中,但又不確定爲什麼您需要一個未命名的輸入元素。

+1

我需要一個未命名的輸入元素的原因是我使用stripe.com進行在線信用卡付款使用他們的stripe.js PCI合規性。爲此,他們要求您使用收集信用卡信息的表單來輸入姓名。 – Softinio

相關問題