我为复选框视图模型编写了一个编辑器模板,在渲染时执行以下代码:
@Html.LabelFor(x => x.Checked, Model.Label, new Dictionary<string, object> { { "for", Model.Name } })
@Html.CheckBoxFor(x => x.Checked, true, new Dictionary<string, object> { { "id", Model.Name }, { "name", Model.Name }, { "class", "custom" } })
编写了Helper类方法,
public static MvcHtmlString CheckBoxFor<TModel>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, bool>> expression, bool isReadonly, IDictionary<string, object> htmlAttributes)
在加载时禁用带有标签的复选框。
并有按钮点击事件
$(document).on('OnNewButtonClick', function (e) {
alert("Entry");
$("input:checkbox").removeAttr('disabled');
$("input:text,textarea").removeAttr("readonly");
$("input:text, input:radio, input:checkbox,textarea").css('background-color', 'transparent');
$("input:checkbox").prop('disabled',false);
alert("Exit");
});
但它没有启用带标签的复选框,单选按钮存在同样的问题吗?
我尝试了每个选项以启用按钮单击。我正在使用ASP.Net MVC4,Html5,CSS3,jQuery移动应用程序。 浏览器使用:IE,Firefox。
嗨,你能否提出一些其他的方法,因为你最终回答的是我这样做,
<script type="text/javascript">
$(document).ready(function () {
$(document).on("click", "#Newbutton", function (e) {
$(this).trigger('OnNewButtonClick');
});
});
</script>
答案 0 :(得分:1)
为什么你不这样使用
$(document).ready(
$("#ButtonSelector").on('click',function(){
alert("Entry");
$("input:checkbox").removeAttr('disabled');
$("input:text,textarea").removeAttr("readonly");
$("input:text, input:radio, input:checkbox,textarea").css('background-color', 'transparent');
$("input:checkbox").prop('disabled',false);
alert("Exit");
});
);
答案 1 :(得分:0)
谢谢你们的支持和帮助,如果我错了或者还有其他最佳解决方案,请回答我的问题。
似乎加载了Html控件,一旦它们在内部应用CSS和许多其他东西,如事件绑定,类名,div元素等。
所以在加载后启用/禁用这些额外的东西是不可能的,因为它没有找到元素之间的交互方式。它的类名如&#39; ui-checkbox ui-state-禁用&#39;它被用于很多地方,如函数,事件,它是html源代码中的一种硬编码值。
如果我们对某些点击事件进行状态更改,则会删除复选框的状态,但不会删除样式的状态,因此请注意与样式表关联的属性/属性。
我做了什么,而不是在'htmlAttributes&#39;&#39; htmlAttributes&#39;我在这个方法中做的辅助方法的参数,
public static MvcHtmlString CheckBoxFor<TModel>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, bool>> expression, bool isReadonly, IDictionary<string, object> htmlAttribute{
...
htmlAttributes["disabled"] = isReadonly;
return htmlHelper.CheckBoxFor(expression, htmlAttributes);
}
我在脚本中呈现/准备文档后添加了属性,如下所示,
<script type="text/javascript">
$(document).ready(function () {
alert('ready in partial');
$("input:text, input:radio, input:checkbox,textarea").prop("readonly", true);
$("input:radio, input:checkbox").prop('disabled', true);
$("input:text, input:radio, input:checkbox,textarea").css('background-color', '#DEDEDE');
});
在条件事件上提供正确的事件处理和启用/禁用checkbox / radionbutton,例如点击按钮。