我正在尝试使用shinyjs包来清除和禁用shiny应用中的一个默认输入字段。清除/禁用按钮似乎可以工作。但是,当我点击提交时,默认值仍在提交(见下图)。我如何使其提交NULL或空字符串?
library(shinyjs)
library(shiny)
# this is supposed to change the input value to null
jsCode <- 'shinyjs.clear_input = function(params){
var defaultParams = {
input_id : null
};
params = shinyjs.getParams(params, defaultParams);
var el = $("#" + params.input_id);
el.val(null);}'
shinyApp(
ui = fluidPage(
useShinyjs(),
extendShinyjs(text = jsCode, functions = c("clear_input")),
textInput("input", label = "input", value = "default text"),
actionButton("clear", label = "clear/disable"),
actionButton("submit", "submit"),
tags$div(id="result")
),
server = function(input, output) {
observeEvent(input$clear, {
js$clear_input("input")
disable("input")
})
observeEvent(input$submit, {
insertUI("#result", ui=renderText(input$input))
})
}
)
2条答案
按热度按时间qjp7pelc1#
就我个人而言,我对javascript不是很适应,所以我尽可能地避免使用javascript,并在R中使用它。您可以使用
updateTextInput
更新textInput
中的值。kxeu7u2r2#
使用
updateTextInput()
时坚持使用Javascript并遵循Ronak的想法