【问题标题】:Get RadioButton value Razor MVC获取 RadioButton 值 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。任何帮助将不胜感激!

【问题讨论】:

    标签: javascript c# jquery asp.net-mvc-4 razor


    【解决方案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).....
      
          });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-04
        • 2017-04-06
        • 2014-08-03
        • 1970-01-01
        • 2017-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多