获取 RadioButton 值 Razor MVC

Posted

技术标签:

【中文标题】获取 RadioButton 值 Razor MVC【英文标题】:Get RadioButton value Razor MVC 【发布时间】:2018-09-19 23:38:52 【问题描述】:

我有一个包含真假值的单选按钮列表。我想获取更改单击事件的值,以便可以使用它来显示条件标签。如果它是真的;如果它是假的不同标签,我会显示一个标签。它是一个项目列表,所以我正在循环遍历它..

这是我目前所拥有的:

型号:

public List<bool>answerValues  get; set; 

查看:

<td> 
   @html.RadioButtonFor(model => model.answerValues[i], true, new  id = 
    "TrueValueID", @onclick = "buttonValue()") True

   @Html.RadioButtonFor(model=> model.answerValues[i], false, new  id = 
    "FalseValueID", @onclick ="buttonValue()" ) False 
</td>

JavaScript

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
 <script>
      function buttonValue(e) 
          alert(e.value);
      

  </script>

在 Controller - Action 方法 (Get) 中,我想获取真/假值,以便根据值显示/隐藏。

我不熟悉 Razor / MVC。任何帮助将不胜感激!

【问题讨论】:

【参考方案1】:

你错过了this,应该使用buttonValue(this)

<td> 
   @Html.RadioButtonFor(model => model.answerValues[i], true, new  id = 
    "TrueValueID", @onclick = "buttonValue(this)") True

   @Html.RadioButtonFor(model=> model.answerValues[i], false, new  id = 
    "FalseValueID", @onclick ="buttonValue(this)" ) False 
</td>

实际操作:

function buttonValue(e) 
  alert(e.value);

  if (e.value === 'true') 
    alert('it is true');
   else 
    alert('it is false');
  

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" name="test" value="true" onclick="buttonValue(this)" />
<input type="radio" name="test" value="false" onclick="buttonValue(this)" />

我想获取真/假值,以便根据值显示/隐藏

如果选中,单选按钮返回on,如果值返回on,则显示标签,否则显示另一个标签。您也可以将value 设置为单选按钮,例如&lt;input type="radio" value="true"... 或布尔值。

【讨论】:

非常感谢!关键字“this”起到了作用。我怎样才能将这个值从视图传递给控制器​​。我只是在Controller中的Action(get方法)中输入了按钮名称,但它没有识别它。?? 我将您的代码用于 if 语句,尽管选择了 true,但它总是打印“hmmm”??? @Warda 你确定alert(e.value); 返回on 吗? 是的,我复制了您的确切代码,但我注意到在您的场景中您只有一个单选按钮。和我一起,我有两个真假。目前它总是显示“hmm”消息,这意味着它跳过了第一个 if 语句?? 是的,没错!!非常感谢你! :D【参考方案2】:

希望对你有帮助。

剃刀密码

在这里我们可以在单选按钮上设置通用类来绑定更改事件 在js中。

<td> 
       @Html.RadioButtonFor(model => model.answerValues[i], true, new  id = 
        "TrueValueID", @class="rdbtnanswervalue") True

       @Html.RadioButtonFor(model=> model.answerValues[i], false, new  id = 
        "FalseValueID", @class="rdbtnanswervalue" ) False 
    </td>

Js 代码

<script>
$(function () 
    $(".rdbtnanswervalue").on("change", function () 

        // for current value
        alert($(this).val());

        // for all radio button with same class uncomment below code.

        //$(".rdbtnanswervalue").each(index, ele)
        //
        //    // get value and perfom action acordingly.
        //    alert($(ele).val())

        //
    )
)

【讨论】:

【参考方案3】:

您应该为所有单选按钮使用名称属性。

然后在 JQuery 中

$('input:radio[name=RADIO_NAME]').change(function () 
        var value = $('input:radio[name=RADIO_NAME]:checked').val();
        switch(value).....

    );

【讨论】:

以上是关于获取 RadioButton 值 Razor MVC的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jQuery 获取 asp:RadioButton 的检查值?

怎么样获取动态生成的radiobutton的值

如何获取选中radioButton的文本

使用 Jquery 在 Razor 中获取元素值

android 中如何获取radiogroup 中那个radiobutton被选择

如何在 GridPanel Ext.net Razor 中按名称获取值