2016-02-27 35 views
-1

在grails中工作2.4.5是否有參數化g:textfield的必需部分,我現在的代碼看起來像這樣,我想以消除if語句....in grails 2.4.5是否有參數化g:文本域的所需部分

<g:if test="${requiredData == true}"> 
    <g:field type="number" class="form-control" name="${entityField}" value="${value}" min="${min}" max="${max}" required="" /> 
</g:if> 
<g:else> 
    <g:field type="number" class="form-control" name="${entityField}" value="${value}" min="${min}" max="${max}" /> 
</g:else> 

回答

1

是的,您可以覆蓋g:字段或編寫自己的TagLib來處理它。基於FormTagLib

3

的一種簡單方法有條件地添加或排除一個屬性是這樣的:

<g:field type="number" class="form-control" name="${entityField}" value="${value}" min="${min}" max="${max}" ${requiredData ? 'required=""' : ''} /> 

例如,我使用該技術與disabled屬性,因爲在這種情況下,屬性的僅僅存在激活功能;該值被忽略。

+0

如果需要的話=「假」將在所有的情況下工作,我沒有測試過我的和不確定。這看起來像一個更好的方式 – Vahid

+0

@vahid,它沒有。將屬性設置爲* any *有效地意味着'required =「true」'爲了讓我們看看jQuery在單元測試中如何處理這個屬性:https://github.com/jquery/jquery/blob/ddb2c06f51a20d1da2d444ecda88f9ed64ef2e91 /test/unit/attributes.js#L350 –

+0

類 我希望工作....但它pukes對我來說,大聲笑.... org.codehaus.groovy.grails.web.taglib.exceptions.GrailsTagException 消息 在屬性名後面加'='(class =「form-control」name =「$ {entityField}」value =「$ {value}」min =「$ {min}」max =「$ {max}」$ {requiredData ?'required =「」':''})。 –

0

你可以嘗試:

<g:field type="number" class="form-control" name="${entityField}" 
    value="${value}" min="${min}" max="${max}" 
    <g:if test="${requiredData == true}">required=""</g:if> 
    /> 
0

一個辦法是通過JS。你可以有:

<g:field type="number" class="form-control ${requiredField ? 'required-field' : ''}" name="${entityField}" value="${value}" min="${min}" max="${max}" /> 

和JS:

$(function() { 
    $(document).ajaxComplete(function() { 
     $(".required-field").prop('required',true); 
    }); 
    $(".required-field").prop('required',true); 
}); 
相關問題