单选按钮和jQuery
我在MVC中呈现了以下单选按钮:单选按钮和jQuery,jquery,html,asp.net-mvc,radio-button,Jquery,Html,Asp.net Mvc,Radio Button,我在MVC中呈现了以下单选按钮: <div class="radio" id="ModelViewAd.TypeOfAd"> <input checked="checked" id="ModelViewAd.TypeOfAd_Ad" name="ModelViewAd.TypeOfAd.SelectedValue" type="radio" value="Ad" /> <label for="ModelViewAd.TypeOfAd_Ad">Annons&
<div class="radio" id="ModelViewAd.TypeOfAd">
<input checked="checked" id="ModelViewAd.TypeOfAd_Ad" name="ModelViewAd.TypeOfAd.SelectedValue" type="radio" value="Ad" />
<label for="ModelViewAd.TypeOfAd_Ad">Annons</label><br>
<input id="ModelViewAd.TypeOfAd_Auktion" name="ModelViewAd.TypeOfAd.SelectedValue" type="radio" value="Auktion" />
<label for="ModelViewAd.TypeOfAd_Auktion">Auktion</label><br>
</div>
现在在单选按钮之间切换时会触发其中一个?如何解决这个问题?您需要一些更正:
$("#TypeOfAd_Auktion")
//should be:
$("#ModelViewAd\\.TypeOfAd_Auktion")
$(this).checked
//should be:
this.checked
$("#ModelViewAd.TypeOfAd_Ad")
//should be:
$("#ModelViewAd\\.TypeOfAd_Ad")
这是:
$("divEndDate")
//should be:
$("#divEndDate")
在ID中使用
时,需要对其进行转义,以使其不被视为类,如下所示:\.
此外,除非您需要可见性
以占用页面中的空间(即使在隐藏时),请改用显示
,然后您可以将代码缩短为:
$("#ModelViewAd\\.TypeOfAd :radio").change(function () {
$("#divEndDate").toggle(this.checked && this.value == 'Ad');
});
,这不包括对HTML的更改,只包括脚本。请尝试以下操作
$(document).ready(function () {
$('input:radio[name="ModelViewAd.TypeOfAd.SelectedValue"]').click(function() {
this.id == 'ModelViewAd.TypeOfAd_Ad'?
$("#divEndDate").show() : $("#divEndDate").hide();
});
});
我们将相同的click事件处理程序绑定到两个无线电输入,然后检查函数内部的id。根据此id值,我们可以显示或隐藏带有结束日期的
这里有一个或
切换()
:)我个人更喜欢显式设置显示或隐藏,并显式控制可见性。我记得有一段时间以前使用1.2.X时,我在使用toggle()
时遇到了一些问题,从那时起我就一直避免使用它。谢谢!但在页面加载后,在某些情况下应检查单选按钮,可能是因为divEndDate从一开始就应隐藏,可能是因为用户向服务发布了一篇不正确的帖子,并且该帖子与广告类型一致,如果是这样,那么divEndDate应该隐藏。谢谢!但在加载页面后,在某些情况下应检查单选按钮,可能是因为divEndDate从一开始就应隐藏,可能是因为用户向服务发布了一篇不正确的帖子,并且该帖子将与TypeOfAd_Ad一起提交,如果是这样,则应隐藏divEndDate。@SnowJim-添加一个.change()
也可以立即触发处理程序,所以最后一行应该是:})代码>
$(document).ready(function () {
$('input:radio[name="ModelViewAd.TypeOfAd.SelectedValue"]').click(function() {
this.id == 'ModelViewAd.TypeOfAd_Ad'?
$("#divEndDate").show() : $("#divEndDate").hide();
});
});