Shiny开发中如何在option标签内设置selected选中属性?
解决方法
你之前的写法错误将属性拼接到了标签文本内容中,Shiny会默认转义文本内容里的HTML特殊字符,所以无法生成预期的属性。
Shiny的tags$*系列函数中,标签属性直接作为命名参数传入即可,布尔属性(如selected)传TRUE就会自动渲染为标准的无值属性格式,修正后的代码如下:
asd <- c() for (i in c("a","b")){ asd <- tagList(asd, tags$option(value = i, selected = TRUE, i)) }
运行后输出的标签就会符合你的预期:
<option value="a" selected>a</option> <option value="b" selected>b</option>
原理说明
- 所有传入
tags$option的命名参数都会被识别为HTML标签属性,非命名参数会被作为标签的文本内容处理 - 对于checked、disabled、selected这类HTML布尔属性,只要参数值设为
TRUE,Shiny就会自动渲染为不带值的标准属性格式,不需要手动拼接属性字符串
内容的提问来源于stack exchange,提问作者manu p
相关产品推荐
相关产品推荐

