我的项目是ASP.NET MVC之一。在视图中,我正在创建一个Html文本框并使用attr在javascript中禁用它。
<script language="javascript">
Disable= function(){
$("#Disable").attr("disabled","disabled");
}
</script>
<% using(Html.BeginForm("Save","Account")){%>
<%: Html.TextboxFor(model=>model.Account) %>
<input type="button" id="Disable" name="Disable" onclick="Disable()">
<input type="submit" id="Save">
<%}%>
当点击“保存”按钮时,我正在捕捉FormCollection中的值。但是当它被禁用时,我无法看到该集合中的文本框。什么时候它没有工作正常。为什么会这样?
答案 0 :(得分:5)
未发布已停用的字段。如果需要,可以使用隐藏字段保存值。
答案 1 :(得分:0)
几年前我就这个问题写过blog post。
这个想法是将它标记为只读并添加一个最终使其显示为禁用的CSS类。然后在回发中,您可以通过Request [yourTextBox.UniqueID]访问该值。
希望有所帮助。
答案 2 :(得分:0)
我在我正在构建的应用中遇到此问题。我不想将字段标记为只读,因为这样就可以启用组合框。所以,我刚刚在我的提交按钮上添加了一个JavaScript函数调用,重新启用了控件。
<input type="submit" name="Save" value="Save" onclick="enableControls(); return true;"/>
enableControls()函数:
function enableControls() {
$('input[type="text"], textarea, input[type="checkbox"], select').attr('disabled', false);
}
答案 3 :(得分:0)
在Formcollection中,您将无法获得可用输入的值,或者选择其他方式将其隐藏,如下所示
<div><input type="hidden" class="form-control" id="classId" name="classId" autocomplete="off" placeholder="class id"/></div>