Javascript C#asp.net mvc设置CheckBoxFor checked属性(具有模型值)
在我的表单中,我有一个复选框,当我单击复选框时,一个文本框被启用。 当我提交表单时,我得到了两个值(复选框和文本框)和站点刷新,刷新后复选框被选中,但文本框被禁用,但具有最后一个插入值 如果我再次提交而不做任何事情,文本框将返回null,而不是最后一个插入值 我希望复选框从我的模型中获取值,并更改textbox disabled属性的行为。如果没有新值将被插入,则它应返回最后一个插入值 当我将model属性设置为false时,复选框也被选中。 有人知道我能做什么吗 视图: JavaScript:Javascript C#asp.net mvc设置CheckBoxFor checked属性(具有模型值),javascript,c#,asp.net,asp.net-mvc,checkbox,Javascript,C#,Asp.net,Asp.net Mvc,Checkbox,在我的表单中,我有一个复选框,当我单击复选框时,一个文本框被启用。 当我提交表单时,我得到了两个值(复选框和文本框)和站点刷新,刷新后复选框被选中,但文本框被禁用,但具有最后一个插入值 如果我再次提交而不做任何事情,文本框将返回null,而不是最后一个插入值 我希望复选框从我的模型中获取值,并更改textbox disabled属性的行为。如果没有新值将被插入,则它应返回最后一个插入值 当我将model属性设置为false时,复选框也被选中。 有人知道我能做什么吗 视图: JavaScript:
$("#OrgNameChecked").click(function () {
$('#OrganisatioName').attr("disabled", $(this).is(':unchecked'));
});
型号:
public bool FilterOrgNameIsCheckedValue { get; set; }
控制器(提交调用的函数):
公共行动结果索引(AdminOrganizationModel m)
{
AdminOrganizationModel=新的AdminOrganizationModel();
if(TempData[“model”!=null)
{
m=(AdminOrganizationModel)TempData[“model”];
}
if(m.FilterModel==null)
{
m、 FilterModel=新的AdminOrganizationFilterModel();
}
模型=m;
OrganizationBusinessObject OrganizationBusinessObject=新的OrganizationBusinessObject(DbContext);
var organizations=DbContext.getAllentiesQueryable();
组织=过滤器组织(组织,模型);
草签审查员(1);
AdminOrganizationModelBuilder modelBuilder=新建AdminOrganizationModelBuilder();
IList简单解决方案;)
我在视图中添加了一个简单的if语句:
<div class="col-sm-2">
@if (Model.FilterModel.FilterOrgNameIsCheckedValue)
{
@Html.TextBoxFor(m => m.FilterModel.FilterOrgNameValue, new { @class = "form-control", @id = "OrganisatioName"})
}
else
{
@Html.TextBoxFor(m => m.FilterModel.FilterOrgNameValue, new { @class = "form-control", @id = "OrganisatioName", @disabled = "disabled" })
}
</div>
@if(Model.FilterModel.FilterOrgNameIsCheckedValue)
{
@Html.TextBoxFor(m=>m.FilterModel.FilterOrgNameValue,新的{@class=“form control”,@id=“organizationame”})
}
其他的
{
@Html.TextBoxFor(m=>m.FilterModel.FilterOrgNameValue,新的{@class=“form control”、@id=“organizationame”、@disabled=“disabled”})
}
我想这不是最好的方法,但它很有效=)不要试图设置
checked
属性。checked属性是根据FilterModel.FilterOrgNameIsCheckedValue的值自动设置的。如果它的为true
,那么它将被选中,否则它将被取消选中。并生成checked=“checked”
和checked=“unchecked”
完全相同-都将复选框设置为选中(除了“checked=“unchecked”
是无效的html)谢谢,但是文本框在刷新后会被禁用,因为加载页面时需要运行脚本(或者添加一个条件属性以基于FilterModel.FilterOrgNameIsCheckedValue
的值禁用文本框。好的,我可以怎么做?你做的很好(尽管你也可以对文本框使用条件属性(请参阅或javascript-$('#OrganizationName.)的第一个代码段)('disabled',!$('orgname checked')。is(':checked');
Cool=)非常感谢您的帮助=)
public ActionResult Index(AdminOrganizationModel m)
{
AdminOrganizationModel model = new AdminOrganizationModel();
if(TempData["model"] != null)
{
m = (AdminOrganizationModel)TempData["model"];
}
if(m.FilterModel == null)
{
m.FilterModel = new AdminOrganizationFilterModel();
}
model = m;
OrganizationBusinessObject organizationBusinessObject = new OrganizationBusinessObject(DbContext);
var organizations = DbContext.GetAllEntitiesQueryable<Organization>();
organizations = FilterOrganizations(organizations, model);
InitializeLicenseList(1);
AdminOrganizationModelBuilder modelBuilder = new AdminOrganizationModelBuilder();
IList<AdminOrganizationModel> organizationsModels = modelBuilder.GetModelCollection(organizations);
model.Organizations = new AjaxGridFactory().CreateAjaxGrid(organizationsModels.AsQueryable(), 1, false, 10) as AjaxGrid<AdminOrganizationModel>;
return View(model);
}
<div class="col-sm-2">
@if (Model.FilterModel.FilterOrgNameIsCheckedValue)
{
@Html.TextBoxFor(m => m.FilterModel.FilterOrgNameValue, new { @class = "form-control", @id = "OrganisatioName"})
}
else
{
@Html.TextBoxFor(m => m.FilterModel.FilterOrgNameValue, new { @class = "form-control", @id = "OrganisatioName", @disabled = "disabled" })
}
</div>