簡體   English   中英

Grails - 在GSP中設置“已禁用”屬性名稱和值

[英]Grails - Set “disabled” attribute name and value in GSP

我試圖這樣做沒有成功:

<g:textField title="${title}" ${disabled} />

我想要應用一個禁用的屬性,僅在$ {disabled}變量為TRUE時。 我不想使用條件,因為在其他視圖中我獲得了大量代碼並使用IF語句,將是一個混亂。

另一件事是應用這樣的屬性:

<g:textField title="${title}" disabled="${disabled}" />

但是當我把disabled屬性放在一起時,沒有變量的內容,它總是禁用該字段。

如果你不喜歡gotomanners的解決方案(這對我來說似乎完全有效)

<g:textField title="${title}" ${(disabled)?"disabled":""} />

你的$ {disabled}變量應該返回“disabled”而不是TRUE才能工作。

編輯

我嘗試了這個,看到它的問題總是被禁用,無論價值。 顯然,僅存在disabled關鍵字會禁用該字段,並且分配給該關鍵字的值僅為虛擬值。

無論如何,這是一個修復。

  • 創建Taglib類(如果您還沒有)
  • 定義你自己的textfield標簽......

     def myTextField = { attrs, body -> def title = attrs.remove("title") def isDisabled = attrs.remove("disabled") if ("true".equals(isDisabled)) { out << """<input title="${title}" disabled="${isDisabled}" """ attrs.each { k,v -> out << k << "=\\"" << v << "\\" " } out << "/>" } else { out << """<input title="${title}" """ attrs.each { k,v -> out << k << "=\\"" << v << "\\" " } out << "/>" } } 
  • 在你的gsp中,像這樣調用你的textfield標簽

     <g:myTextField title="${title}" disabled="${disabled}" /> 
  • 添加這樣的額外屬性也是有效的

     <g:myTextField class="title" name="theName" value="theValue" title="${title}" disabled="${disabled}" /> 
  • 確保你的$ {disabled}變量這次返回“true”或“false”作為字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM