Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单选按钮和jQuery_Jquery_Html_Asp.net Mvc_Radio Button - Fatal编程技术网

单选按钮和jQuery

单选按钮和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&

我在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</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();

  });
});