获取 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
设置为单选按钮,例如<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 的检查值?