我使用MVC Razor设计了一个页面。其中我有一个div正在跟随
<div class="row" id="DivDisableForView">
<div class="col-md-4">
<label for="" class="control-label">
Product
</label>
<br />
@Html.DropDownListFor(m => m.ProductSeq, Model.products.ToSelectListItems(x => x.ProductName, x => x.Id.ToString(), "", true, "", "Select"), new { @class = "form-control" }).DisableIf(() => Model.IsReadOnly == true || !Model.IsAdd)
@Html.HiddenFor(m => m.ProductSeq)
</div>
<div class="col-md-4" runat="server">
<b>Exception Type</b>
<br />
@Html.EnumRadioButtonFor(m => m.enumExceptionType, true).DisableIf(() => Model.IsReadOnly == true || !Model.IsAdd)
@Html.HiddenFor(m => m.enumExceptionType)
</div>
<div class="col-md-4" id="divTranMode">
<b>Transaction Mode</b>
<br />
@Html.EnumRadioButtonFor(m => m.enumTransactionMode, true).DisableIf(() => Model.IsReadOnly == true || !Model.IsAdd)
@Html.HiddenFor(m => m.enumTransactionMode)
</div>
</div>
if (Model.IsAdd)
{
<div class="row" id="ViewButton">
<button id="btnView" name="Submit" class="btn btn-default">
View
</button>
</div>
}
...
...
...
如果单击视图按钮,则网格将根据上面给定的字段数据加载,并禁用以下字段,
$("#DivDisableForView").prop('disabled', true);
之后,当我单击提交按钮时,则不存在禁用字段的数据,(即)值为空。那么如何避免它或如何禁用div标签而不使其值为null或为空。请任何人帮助
答案 0 :(得分:2)
具有disabled="true"
属性的Html元素不会在表单数据中发送。您只需隐藏div
,数据仍会被发送以进行处理。使用:
$("#DivDisableForView").hide();
修改强>
不,我想在屏幕上显示字段
如果您希望保持字段可见,可以尝试将其设置为readonly
。
类似的东西:
$('#DivDisableForView input').attr('readonly', 'readonly');
//maybe also set color to gray
$('#DivDisableForView input').css("background-color", "#eee");
Readonly属性仍将在表单数据中发送。
编辑2
选择字段的解决方案:
这个JS可以解决选择问题:
$('#DivDisableForView input, #DivDisableForView select').attr('readonly', 'readonly');
//maybe also set color to gray
$('#DivDisableForView input, #DivDisableForView select').css("background-color", "#eee");
//selects
$('#DivDisableForView select').attr('onfocus', 'this.defaultIndex=this.selectedIndex;');
$('#DivDisableForView select').attr('onchange', 'this.selectedIndex=this.defaultIndex');
这是一个JSFiddle:https://jsfiddle.net/ddan/W4Km8/5340/
希望它有所帮助。
编辑3
对于广播和复选框,您可以执行以下操作:
$('#DivDisableForView :radio, #DivDisableForView :checkbox').click(function() {
return false;
});
参见示例(更新的JSFiddle):https://jsfiddle.net/ddan/W4Km8/5341/
答案 1 :(得分:1)
请隐藏您的div,而不是禁用。
使用此
$("#DivDisableForView").css('display', 'none');
或强>
$("#DivDisableForView").hide();
答案 2 :(得分:1)
使用.hide()
或使用.css('display','none')
申请,如果您只想禁用,请首先获取div的值并将其存储在变量中,然后禁用div。
var divvalue = $("#DivDisableForView").val();
$("#DivDisableForView").prop('disabled', true);