Html.CheckBox onclick事件正在转义
Html.CheckBox onclick event is getting escaped
我正在尝试生成一系列复选框,这些复选框将更新跨度,以跟踪已选中的复选框的数量(显示类似于"12个复选框中的4个")。我已经创建了处理这个问题的JavaScript函数updateSelected
,但它需要跨度的ID和复选框的类来计数,所以我尝试用这个代码来生成每个复选框:
@Html.CheckBox(string.Format("contentprofilestate[{0}].selected", i),
new { onclick = "updateSelected('" + selectedSpanId + "', '" + checkboxClass + "')" })
这将生成以下HTML:
<input id="contentprofilestate_6__selected" name="contentprofilestate[6].selected"
onclick="updateSelected('StMarySpan', 'StMaryCheck')"
type="checkbox" value="true" />
如何在不转义撇号的情况下使onclick
事件处理程序进行呈现?或者,有没有更好的方法来完成这项任务(如果有,请在您的建议中使用jQuery)?
注意:Lester
我创建了一个新项目并创建了这个视图,它仍然逃脱了撇号:
@{
ViewBag.Title = "index";
}
<h2>index</h2>
@Html.CheckBox(string.Format("contentprofilestate[{0}].selected", 0), new { onclick = "updateSelected('" + "test" + "', '" + "test2" + "')" })
替代解决方案
我不知道如何避免撇号被转义,所以我写了一些jQuery逻辑来做我需要的事情,而不需要任何内联JavaScript:
jQuery(document).ready(function () {
jQuery(':checkbox').click(function () {
var clientHeader = jQuery(this).closest('.client-header');
var clientCheckedSpan = clientHeader.find('.client-checked');
var inputChecked = clientHeader.find('input:checked');
clientCheckedSpan.text(inputChecked.length);
});
});
撇号被编码是非常奇怪的。我没想到他们会是,经过快速测试,他们不是。这种观点可能还有其他原因。如果你只把那一行放在一个空视图中,我打赌你不会遇到同样的问题。
至于任何其他选择,您可以使用jQuery:轻松地获得所选复选框的数量
var numChecked = $("input:checked[id^=contentprofilestate]").size();
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- 在JavaScript中输出转义字符
- 转义符不能与innerHTML一起使用
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 在焦点元素上按下转义键时,不会引发关键事件
- 在Chrome/Firefox中全屏按转义时未触发键下达事件
- onclick事件的转义参数不起作用
- Html.CheckBox onclick事件正在转义
- 使用Grails在发出警报的事件处理程序中转义双引号
- 转义键未触发Keyup事件