2011-04-06 53 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); 
}