Grails:使用禁用属性设置为true的Grails的select标记忽略该值

Grails:使用禁用属性设置为true的Grails的select标记忽略该值,grails,drop-down-menu,Grails,Drop Down Menu,我需要根据其值禁用grails中的select元素。问题是,当我开始添加disable属性时,代码中出现了一些错误 例如,当表单被发送到后端时,就好像该select元素没有值,发送的值为null。但是,当我检查DOM时,元素中有一个选中的属性。我试图删除那个被禁用的属性,因为我觉得它与我遇到的bug有关,我是对的,因为删除它后,一切都正常工作了 这是选择标记 <g:select name="detail-entryNameId" value="${journalEntryName.savi

我需要根据其值禁用grails中的select元素。问题是,当我开始添加disable属性时,代码中出现了一些错误

例如,当表单被发送到后端时,就好像该select元素没有值,发送的值为null。但是,当我检查DOM时,元素中有一个选中的属性。我试图删除那个被禁用的属性,因为我觉得它与我遇到的bug有关,我是对的,因为删除它后,一切都正常工作了

这是选择标记

<g:select name="detail-entryNameId"
value="${journalEntryName.savingId}"
from="${journalEntryNameInstanceList}"
optionKey="savingId"
optionValue="displayName"
readonly="${journalEntryInstance.paymentMade}"
/>

关于这个元素还有一点是,它可以尽可能多地出现,这意味着我有一个表,并且在每一行中,这个元素都存在,所以我不能简单地操作它

我在这篇文章中还读到“如果您使用disabled=“true”,那么值实际上不会在表单中提交,因此应该使用
标记。”这证明了disable属性会影响元素的值


如何禁用select元素,同时仍能正确获取其值?

问题在于HTML中仅存在disabled属性就禁用了标记。该属性的值(真/假)将被忽略

在这种情况下,解决方案是根据条件使用
创建具有或不具有禁用属性的标记

在您的情况下,由于即使在禁用标记时也需要该值,因此您可以添加一个与禁用的选择项具有相同名称和值的