2015-07-13 114 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); –