我正在研究确定是否显示联系信息部分的代码。为此,我使用Razor中的MVC视图模型的布尔值实现RadioButtonFor html-helper。
加载页面后,如果HasConflicts模型值为true,则需要更改默认值而不是显示它,以显示它。我正在尝试使用JQuery在页面加载时执行此操作,但是所选选项不会更改。
这是剃刀区
<div class="left-col" id="noConflict">
@Html.RadioButtonFor(m => m.HasConflicts, "false") <strong><em>No Conflict of Interest exists at this time</em></strong>
</div>
<div class="right-col" id="yesConflict">
@Html.RadioButtonFor(m => m.HasConflicts, "true") <strong><em>A Conflict of Interest exists at this time</em></strong>
</div>
这是我尝试放入页面加载中的JQuery,跟随网站上的另一个答案,并删除条件语句只是为了看看我是否可以选择“ yesConflict”按钮。
$(function () {
$('#yesConflict').prop('checked', true).change();
};
最奇怪的是发生更改事件,因此它应该是正确的ID,但是在屏幕上选择的按钮不会更改。
感谢您的投入,谢谢!
编辑:我对那些RadioButtonFor行的HTML输出有一个请求-在这里。
<div class="left-col" id="noConflict">
<input checked="checked" data-val="true" data-val-required="The HasConflicts field is required." id="HasConflicts" name="HasConflicts" type="radio" value="false" /> <strong><em>No Conflict of Interest exists at this time</em></strong>
</div>
<div class="right-col" id="yesConflict">
<input id="HasConflicts" name="HasConflicts" type="radio" value="true" /> <strong><em>A Conflict of Interest exists at this time</em></strong>
</div>
当在此处运行时通过IE Developer Tools检查时,有两个输入:
<input name="HasConflicts" id="HasConflicts" type="radio" checked="checked" value="false" data-val-required="The HasConflicts field is required." data-val="true" data-dpmaxz-eid="6">
<input name="HasConflicts" id="HasConflicts" type="radio" value="true" data-dpmaxz-eid="7">
请让我知道我是否可以在寻求答案方面获得更多帮助。我研究的所有内容都表明,我放入的JQuery行应该使用1.10执行我希望从JQuery 1.6及更高版本进行的操作-但这根本行不通。
最佳答案
首先,ID是唯一的
对于id="HasConflicts"
,您不应多次使用它,请尝试将其更改为class="HasConflicts"
等,因为当您调用#HasConflicts
时,它将仅针对第一个。
jQuery代码的解决方案:
您要定位父元素,使用$('#yesConflict > input')
定位输入单选(#yesConflict
的直接子元素),请检查以下内容:
注意:
$('#yesConflict input')
使用空间,它将在#yesConflict
中找到所有输入
$('#yesConflict > input')
使用>
,它将仅定位#yesConflict
的直接子级
$(function() {
$('#yesConflict > input').prop('checked', true).change();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="left-col" id="noConflict">
<input checked="checked" data-val="true" data-val-required="The HasConflicts field is required." id="HasConflicts" name="HasConflicts" type="radio" value="false" /> <strong><em>No Conflict of Interest exists at this time</em></strong>
</div>
<div class="right-col" id="yesConflict">
<input id="HasConflicts" name="HasConflicts" type="radio" value="true" /> <strong><em>A Conflict of Interest exists at this time</em></strong>
</div>