2015-08-05 11 views
7

Bir form için form alanlarını jenerik hale getirmeye çalışıyorum. Farklı parsley.js doğrulama gereksinimlerine sahip olmak istiyorum. Html'deki basit bir alan örneği: <input type=text required data-parsley-range=[1,100] /> Standart olmayan 2 özellik vardır.Dinamik th: birden çok öznitelikler için attr özümü

<input class="form-control" fieldType="text" th:attr="required=${field.isRequired ? 'required' : null}" th:attr="data-parsley-range=${field.validStringLengthMin ? [${field.validStringLengthMin},${field.validStringLengthMax}] : null}"/> 

nasıl inci tanımlanan> 1 nitelikleri alabilirim: attr, sadece interpolasyon attr> 1 defa tanımlanır:

ben inci olduğunu yapmak istedim, ama bir hata alıyorum?

Bonus, nasıl şartlı koyabiliyorum, örneğin, required='required' baskı yapmak istemiyorum. Aynı menzil için de geçerli.

Teşekkürler!

cevap

13

Birden çok özniteliği ayırmak için virgül kullanabilirsiniz. attrappend:

th:attr="required=${field.isRequired ? 'required' : null}, data-parsley-range=${field.validStringLengthMin ? [${field.validStringLengthMin},${field.validStringLengthMax}] : null}" 

hala th kullanabilirsiniz daha iyi okumak için ayrı ayrı tutmak istiyorsanız

.

th:attr="required=${field.isRequired ? 'required' : null}" th:attrappend="data-parsley-range=${field.validStringLengthMin ? [${field.validStringLengthMin},${field.validStringLengthMax}] : null}" 
+0

Koşullu öznitelikler için, bunu denemedim. Ama bu sanırım işe yaramalı. 'th: attr =" $ {alan.isRequired? "gerekli = gerekli ':' '}" th: attrappend = "$ {alan.validStringLengthMin?' veri-maydanoz aralığı = '[$ {alan.validStringLengthMin}, $ {field.validStringLengthMax}]: ''} "' – nmy

+1

Giriş için teşekkürler. Aslında, veriye uymak için oldukça hoş bir paket buldum: https://github.com/mxab/thymeleaf-extras-data-attribute. Bununla birlikte yorumunuzda anlattığınız şekilde çalışamıyorum. Herzaman öznitelik ismini koydum, hata alıyorum. –

İlgili konular