Symfony MoneyType Field呈現爲input type="text"
,它允許用戶在該字段中輸入他們想要的任何內容。如何重寫Symfony表單MoneyType輸入爲type =「number」?
如何覆蓋此設置以呈現爲input type="number"
,以便用戶只能輸入數字字符?
$formBuilder->add("amount", MoneyType::class, [
'currency' => 'USD'
]);
電流輸出:
<div><label for="form_amount" class="required">Amount</label>$ <input type="text" id="form_amount" name="form[amount]" required="required" /></div>
我想實現:
<div><label for="form_amount" class="required">Amount</label>$ <input type="number" id="form_amount" name="form[amount]" required="required" /></div>
我試圖簡單地覆蓋屬性類型,但是所有這些都是在末尾添加第二個type
屬性,由於它顯然是無效的HTML,所以無法工作。
$formBuilder->add("amount", MoneyType::class, [
'attr' => [
'type' => 'number',
],
'currency' => 'USD'
]);
這裏是我的簡單的枝杈:
{{ form_start(form) }}
{{ form_widget(form) }}
<input type="submit" />
{{ form_end(form) }}
我也很好奇,爲什麼這是默認的輸入類型的錢?我正在考慮擴展或修改類以適應此,但我相信我沒有看到一些優勢。
感謝您的回答,但仍允許人們在鍵入字母字符,而不是隻有數字的。 –
嗨,你能指定你需要的輸入格式嗎?然後我可以給你一個更好的答案。例如,格式爲d.dd,其中'd'是一個十進制值。 –
小數點後兩位很好,這是默認值。我注意到提交,如果它是一個有效的數字,然後它截斷到兩位小數,這是好的。 –