2015-07-13 33 views
1

在asp.net中,服務器端控件有一個名爲ClientID的屬性,它可以用來獲取模板引擎爲服務器端控件生成的id,是否有類似的東西在SilverStripe中,獲取輸入元素的id而不是它的.field包裝器?在SilverStripe中獲取一個字段的客戶端元素ID

感謝

+0

你指到Silverstripe附帶的標準FormFields (例如。 TextField,CheckboxField等)或其他擴展'FormField'的自定義字段? – Turnerj

+0

是的,標準FormFields – Ariex

回答

1

看一看的ID方法FormField

http://api.silverstripe.org/3.1/class-FormField.html

在你的模板,你應該能夠使用

$Fields.FieldByName(FieldName).ID 
+0

我不能在模板中,但我已經嘗試在代碼中作爲這個'$ fields-> dataFieldByName('AnotherField') - > setAttribute('data-attribute',$ isTrueField-> ID()) ;' 輸出結果只是「IsTrue」,不包括表格前綴... 對不起,我不知道如何在這裏發佈一個格式良好的代碼,所以我把更多的信息放在gist中:https:// gist .github.com/Ariex/57ffc1db828feedda649 – Ariex

+0

也許試試$ id = $ isTrueField-> form-> FormName()。 '_'。 $ isTrueForm-> ID();如果您查看ID()的代碼,它應該返回表單名稱http://api.silverstripe.org/3.1/source-class-FormField.html#250-266 –

+0

也許沒有定義表單。試試Debug :: dump($ isTrueForm-> form); –