【问题标题】:How are radio buttons passed in a GET request?如何在 GET 请求中传递单选按钮?
【发布时间】:2012-04-25 17:10:34
【问题描述】:

单选按钮如何作为参数传递?我正在使用 Ruby Sinatra 网络服务器。如何获取服务器端选中单选按钮的值?

HTML

<form method="get" action="/register">
  <input type="radio" name="regRadio" value="1" />
  <input type="radio" name="regRadio" value="2" />
  <input type="radio" name="regRadio" value="3" />
  <input type="radio" name="regRadio" value="4" />
</form>

红宝石

get '/register' do
  params[:regRadio]??
end

【问题讨论】:

  • 在您的示例中,如果选择了任一单选按钮,它将始终发送regRadio=1。您可能希望为每个单选按钮使用不同的值,以便您知道实际选择了哪个。
  • 我的错,单选按钮会有不同的值。
  • 在询问之前您是否尝试过您的代码?
  • 是的,尝试访问 params[:regRadio] 始终为 0。
  • 总是 0,或者实际上是 nil? (即你是在nil 上打电话给to_i,这让你有零的错觉?)

标签: html ruby radio-button sinatra


【解决方案1】:

首先,方法应该是post而不是get。其余的似乎都很好。这对我有用:

require 'sinatra'

get '/' do
  <<-HTML
    <form method="post" action="/register">
      <input type="radio" name="regRadio" value="1" />
      <input type="radio" name="regRadio" value="2" />
      <input type="radio" name="regRadio" value="3" />
      <input type="radio" name="regRadio" value="4" />
      <input type="submit" value="Register"/>
    </form>
  HTML
end

post '/register' do
  "You selected #{params[:regRadio]}"
end

当您选择第三项并点击“注册”时

你会得到以下结果:

如果这对您不起作用,则问题出在其他地方。在这种情况下,请向我们展示您的实际代码。

【讨论】:

    【解决方案2】:

    这只是一个通用的提示,因为它是http,在ruby中应该是一样的。

    值设置在名称上,即 regRadio。由于两个单选按钮的值都为 1,因此如果未设置,则值始终为 1 或没有。所以其中之一应该是例如2.

    【讨论】:

      猜你喜欢
      • 2018-04-18
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      • 2020-08-20
      • 1970-01-01
      • 2021-04-14
      • 2021-12-29
      相关资源
      最近更新 更多