2011-04-06 38 views
3
属性

我的项目是ASP.NET MVC之一。在视图中,我创建了一个Html文本框,并在使用attr的javascript中禁用它。jQuery的文本框残疾人......看不到的FormCollection

<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"> 
<%}%> 

当'Save'按钮被击中时,我正在捕捉FormCollection中的值。但是当它被解除时,我看不到集合中的文本框。当它不能正常工作。为什么会发生?

+0

http://stackoverflow.com/questions/1245477/dropdown-combo-not-showing-up-in-formcollection-in-controller – Samuel 2012-08-08 22:09:14

回答

5

不发布已禁用的字段。你可以有一个隐藏的字段,如果你需要发布,它可以保存这个值。

+0

对于文本框的情况下隐藏的现场工作......但如果有一个网格,每列具有复选框和文本框在里面。如果我选中复选框,则应禁用文本框。然后,如果我得到的FormCollection它亘古不显示该行,我怎么能处理这种情况。 – sunny 2011-04-06 20:17:40

+0

感谢您的回答克里斯.. – sunny 2011-04-06 20:19:53

+0

它有没有被禁用?它可以只读吗? – ChrisThompson 2011-04-06 20:27:45

0

几年前,我写了一个blog post关于这个问题。

这个想法是标记为只读,并添加一个CSS类,最终使其显示为禁用。然后在回传则可以通过请求[yourTextBox.UniqueID]进入价值。

希望有所帮助。

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); 
}