У меня есть форма, которая прекрасно работает без нее, но когда я добавляю
CreditCardField::create('CreditCard','Credit Card')->setAttribute('placeholder', '0000')
он отображает поле кредитной карты с тем же именем, идентификатором и другими атрибутами. Конечно, когда я отправляю его, проверка выдает ошибку, поскольку ожидает массив, но получает только строку из 4 последних цифр.
Я правильно создаю это поле? Я предполагаю, что, как только я исправлю проблемы с отображением, это исправит проблемы с проверкой.
Я не очень знаком с этим типом поля, но вы можете видеть из это шаблон что он не может установить заполнитель:
<span id="{$Name}_Holder" class="creditCardField">
<input $AttributesHTML('id', 'name', 'value', 'tabindex') name="{$Name}[0]" value="{$ValueOne}" $TabIndexHTML(0)/>
-
<input $AttributesHTML('id', 'name', 'value', 'tabindex') name="{$Name}[1]" value="{$ValueTwo}" $TabIndexHTML(1)/>
-
<input $AttributesHTML('id', 'name', 'value', 'tabindex') name="{$Name}[2]" value="{$ValueThree}" $TabIndexHTML(2)/>
-
<input $AttributesHTML('id', 'name', 'value', 'tabindex') name="{$Name}[3]" value="{$ValueFour}" $TabIndexHTML(3)/>
</span>
Атрибуты, которые вы можете установить: ID, имя, значение и индекс табуляции. Заполнитель может быть пропущен намеренно по какой-либо причине безопасности, или это может быть просто отсутствующая функция.
Ваш лучший выбор может быть использовать некоторый JavaScript вместо:
$('#MyCreditCard_Holder').find('input').attr('placeholder', '0000');
Таким образом, есть ошибка в шаблоне, который я зарегистрировал билет за. Обходной путь для этого на данный момент — у вас должен быть свой собственный шаблон CreditCardForm.ss, который использует $getAttributesHTML
скорее, чем $AttributesHTML