使用jquery显示基于复选框选中或未选中的span标签
Show span tags based on checkbox checked or unchecked by using jquery
我有下面的ASP视图页面。净MVC3,根据复选框的选择,我需要显示相关的span标签。
,
在第一个标签中,第一个td有span标签,第二个td有复选框,第三个td有一些消息。
如果复选框被选中,则隐藏位于第一个td中的span标签。
如果复选框未选中,则显示span标签。
我需要显示特定于特定复选框的span标记是否被选中。
如果选中了第一个复选框,则隐藏位于同一个
中的span标签如果第二个复选框未选中,则显示相同的第二个
现在我想知道我该如何去做,显示基于复选框选择的span标签,有人帮助我吗?
<table>
<tr>
<td>
<span id="errorMsg1" class='errorMessage' style="display: none; color: red; font-size: 25px;">*</span>
<'td>
<td>
@Html.CheckBoxFor(m => m.CheckedStatus, new { id = "cbCheckedStatus1", name = "cbCheckedStatus" })
</td>
<td>Message1</td>
</tr>
<tr>
<td>
<span id="errorMsg2" class='errorMessage' style="display: none; color: red; font-size: 25px;">*</span>
<'td>
<td>
@Html.CheckBoxFor(m => m.CheckedStatus, new { id = "cbCheckedStatus2", name = "cbCheckedStatus" })
</td>
<td>Message2</td>
</tr>
<tr>
<td>
<span id="errorMsg3" class='errorMessage' style="display: none; color: red; font-size: 25px;">*</span>
<'td>
<td>
@Html.CheckBoxFor(m => m.CheckedStatus, new { id = "cbCheckedStatus3", name = "cbCheckedStatus" })
</td>
<td>Message3</td>
</tr>
<tr>
<td>
<span id="errorMsg4" class='errorMessage' style="display: none; color: red; font-size: 25px;">*</span>
<'td>
<td>
@Html.CheckBoxFor(m => m.CheckedStatus, new { id = "cbCheckedStatus4", name = "cbCheckedStatus" })
</td>
<td>Message4</td>
</tr>
<tr>
<td>
<span id="errorMsg5" class='errorMessage' style="display: none; color: red; font-size: 25px;">*</span>
<'td>
<td>
@Html.CheckBoxFor(m => m.CheckedStatus, new { id = "cbCheckedStatus5", name = "cbCheckedStatus" })
</td>
<td>Message5</td>
</tr>
<tr>
<td>
<span id="errorMsg6" class='errorMessage' style="display: none; color: red; font-size: 25px;">*</span>
<'td>
<td>
@Html.CheckBoxFor(m => m.CheckedStatus, new { id = "cbCheckedStatus6", name = "cbCheckedStatus" })
</td>
<td>Message6</td>
</tr>
<tr>
<td>
<span id="errorMsg7" class='errorMessage' style="display: none; color: red; font-size: 25px;">*</span>
<'td>
<td>
@Html.CheckBoxFor(m => m.CheckedStatus, new { id = "cbCheckedStatus7", name = "cbCheckedStatus" })
</td>
<td>Message7</td>
</tr>
</table>
我jQuery: jQuery.ready(function domReady($) {
jQuery(function ($) {
$('#cbCheckedStatus7').on('change', function () {
$('#spBlueCheckbox').slideToggle(this.checked);
});
});
$('#BtnAccept').click(function () {
if ($('input:checkbox').length == $('input:checkbox:not(:checked)').length) {
alert('All are not checked')
$('input:checkbox:not(:checked)').addClass("outLineRed");
$('.errorMessage').show();
$('#errorMsg').show();
$('#spMsgError').show();
$('#spMsgError').html("Please confirm all the items above, and place a check mark in every confirmation box.");
$('#MsgSucc').attr("style", "background-color:White;");
return false;
}
else if ($('input:checkbox').length != $('input:checkbox:checked').length) {
alert('few boxes not checked');
//show only span tag whose checkboxes are not checked
$('input:checkbox:not(:checked)').addClass("outLineRed");
$('input:checkbox:checked').removeClass("outLineRed");
return false;
}
else {
alert('all are checked')
$('input:checkbox:checked').removeClass("outLineRed");
$('.errorMessage').hide();
$('#spMsgError').hide();
$('#MsgSucc').attr("style", "background-color:#dfe5e6;");
}
});
});
基于MelanciaUK的回答,我发布了这个答案,对问题点进行了很少的修改,并且它正在如预期的那样工作。它将帮助其他人。
jQuery().ready(function domReady($) {
jQuery(function ($) {
$('#cbCheckedStatus7').on('change', function () {
$('#spBlueCheckbox').slideToggle(this.checked);
});
});
$('#BtnAccept').click(function () {
if ($('input:checkbox').length == $('input:checkbox:not(:checked)').length) {
$('input:checkbox:not(:checked)').addClass("outLineRed");
$('.errorMessage').show();
$('#spMsgError').show();
$('#spMsgError').html("Please confirm all the items above, and place a check mark in every confirmation box.");
$('#MsgSucc').attr("style", "background-color:White;");
return false;
}
else if ($('input:checkbox').length != $('input:checkbox:checked').length) {
$('input:checkbox:not(:checked)').each(function () {
$(this).parents('tr').find('span.errorMessage').show(!this.checked);
});
$('input:checkbox:checked').each(function () {
$(this).parents('tr').find('span.errorMessage').hide(this.checked);
});
$('input:checkbox:not(:checked)').addClass("outLineRed");
$('input:checkbox:checked').removeClass("outLineRed");
return false;
}
else {
$('input:checkbox:checked').removeClass("outLineRed");
$('.errorMessage').hide();
$('#spMsgError').hide();
$('#MsgSucc').attr("style", "background-color:#dfe5e6;");
}
});
});
可以使用toggle代替slideToggle。在IE10中,slideToggle有时工作不正常。
$('#spBlueCheckbox').slideToggle(this.checked);
在
下面使用$('#spBlueCheckbox').toggle(this.checked);
您只需要使用jQuery Tree Traversal
方法找到相关的span
。
你可以修改下面的代码以适应你的目的,但思想将保持不变:
$(function () {
$('input[type="checkbox"]').on('click', function () {
$(this).parents('tr').find('span').slideToggle(this.checked);
});
});
请注意,您正在嵌套两个document ready
事件处理程序,因此也要将其排序。
jQuery树遍历文档
相关文章:
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- 如何使用 jQuery 将 span 标签添加到所选文本并将更改永久保存在本地 html 文件中
- JavaScript 正则表达式,用于保留 span 标签并删除其他标签
- 如何 chk 如果 span 标签是否包含文本
- Cheerio 'text()' 空字符串用于 span 标签
- 从span标签中获取值并从中扣除%(JavaScript)
- 选择 h2 标签的前两个单词并换行 span 标签
- 在按键上使用jquery从最近的span标签中获取文本
- 使用span标签中可用的Nokogiri抓取数据
- 火狐浏览器:点击事件不调用 SPAN 标签
- 在我的标签标签后预先键入span标签以进行搜索.如何正确添加标签
- 如何强制TinyMCE在P标签内创建SPAN标签
- 如何防止所有链接(其中有一个span标签)打开
- 用jQuery删除周围的双span标签.如何解决这个问题
- Javascript锚中的href和span标签
- 当某些东西被删除时,删除span标签
- 如何用jQuery在span标签中换行文本,除了第一个单词
- 在
内动态添加span标签链接 - 用Javascript在句子周围包裹span标签
- 如何在Span标签中获取值