在MVC中,我可以这样定义一组单选按钮:
但是当他们提交表单时,我还需要检查当前选择的值,然后再次显示/隐藏适当的部分(因为在POST时.change函数不会被调用)。 我能做到吗?
如果我尝试if $(':radio[name=hasAcceptedAgreement]').val(),它将始终评估为True,因为ids相同(我假设)。 是否有其他方法可以获取该值,还是因为MVC喜欢给每个id相同的名称而陷入困境?
编辑:顺便说一下,我知道我可以在RadioButtonFor调用中手动设置ids - 我只是想知道是否有一些更容易的内置方式来处理它,我不知道。
@Html.RadioButtonFor(x => x.hasAcceptedAgreement, true) Yes
@Html.RadioButtonFor(x => x.hasAcceptedAgreement, false) No
这将呈现
<input id="hasAcceptedAgreement" name="hasAcceptedAgreement" type="radio" value="True" /> Yes
<input id="hasAcceptedAgreement" name="hasAcceptedAgreement" type="radio" value="False" /> No
我想根据所选择的项目禁用或启用一个div,在使用以下jQuery进行操作时,我已经成功地实现了:
$(':radio[name=hasAcceptedAgreement]').change(function () {
if ($(this).val() == 'True') {
// display div
} else {
// hide div
}
});
但是当他们提交表单时,我还需要检查当前选择的值,然后再次显示/隐藏适当的部分(因为在POST时.change函数不会被调用)。 我能做到吗?
如果我尝试if $(':radio[name=hasAcceptedAgreement]').val(),它将始终评估为True,因为ids相同(我假设)。 是否有其他方法可以获取该值,还是因为MVC喜欢给每个id相同的名称而陷入困境?
编辑:顺便说一下,我知道我可以在RadioButtonFor调用中手动设置ids - 我只是想知道是否有一些更容易的内置方式来处理它,我不知道。
:radio[name="hasAcceptedAgreement"]
,并且您几乎无法不使用===而不是==。 - Jamie Treworgy