获取SilverStripe中字段的客户端元素ID

获取SilverStripe中字段的客户端元素ID,silverstripe,Silverstripe,在asp.net中,服务器端控件有一个名为ClientID的属性,该属性可用于获取模板引擎为服务器端控件生成的id。SilverStripe中是否有类似的内容,用于获取输入元素的id而不是其.field包装器 谢谢看看FormField的ID方法 在模板中,您应该能够使用 $Fields.FieldByName(FieldName).ID 您是指Silverstripe附带的标准FormFields(例如TextField、CheckboxField等)还是扩展FormField的其他自定义

在asp.net中,服务器端控件有一个名为ClientID的属性,该属性可用于获取模板引擎为服务器端控件生成的id。SilverStripe中是否有类似的内容,用于获取输入元素的id而不是其.field包装器


谢谢

看看FormField的ID方法

在模板中,您应该能够使用

$Fields.FieldByName(FieldName).ID

您是指Silverstripe附带的标准FormFields(例如TextField、CheckboxField等)还是扩展
FormField
的其他自定义字段?是的,标准FormFields我无法在模板中创建,但我在代码中尝试过,因为这
$fields->dataFieldByName('AnotherField')->setAttribute('data-attribute',$isTrueField->ID());
并且输出只是“IsTrue”,不包括表单前缀…很抱歉,我不知道如何在这里发布格式良好的代码,所以我在要点中添加了更多信息:可以尝试$id=$isTrueField->form->FormName()。。。。。'$isTrueForm->id();如果您查看id()的代码的话)它应该返回表单名称,可能没有定义表单。请尝试Debug::dump($isTrueForm->form);