2011-09-13 88 views
2

我有一個禁用的asp.net文本框,我使用JQuery爲客戶端的文本框設置值。Tetbox值沒有得到更新?

$('[id$=txtCity]').val('Naperville');

但問題是,當我試圖保存數據。如果我說txtCity.Text,它不會給我在客戶端設置的價值。

該文本框被禁用,並且在使用JQuery設置值之後,我看到了客戶端文本框中反映的值。但我不確定它爲什麼不在服務器端反映出來。

我發現文本框與殘疾人不會被提交與上回發的形式。如果這是真的,我怎麼能提交這些值,並在代碼背後的服務器端獲取。

請幫助。感謝並感謝您的反饋。

+0

請顯示您的代碼。 –

+0

告訴我們更多關於它爲什麼被禁用的信息。用戶是否需要查看它?它純粹是信息性的嗎? –

+0

你使用什麼技術? ASP.NET? –

回答

3

您可以在發佈之前始終「禁用」該字段。例如,

$('form').submit(function() { 
    $(this).find(':input:disabled').removeAttr('disabled'); 
}); 

使用readonly領域,按照Knix的回答,當然還有可能是一個可行的解決方案,以及。


編輯:剛剛閱讀您對Knix的答案的評論,所以它聽起來像動態刪除禁用的屬性之前發佈可能是要走的路。

+0

這應該符合嚴格的標準。 –

3

我不認爲禁用的字段會發布。

也許你應該嘗試readonly領域:http://www.w3schools.com/tags/att_input_readonly.asp

<input id="firstName" name="firstName" value="hello world" READONLY> 

您可以隨時使用CSS使只讀字段顯示爲禁用=)

編輯:

Ok..if你不能做只讀,如何使用AJAX發佈和直接傳遞數據,因爲你說你可以在客戶端訪問它:

$.ajax({ 
     url: "yourForm.php", // sorry I used PHP in this example 
     type: "POST", 
     data: { txtCity : $('#txtCity').val() }, 
     success: function(msg){ 
     alert(msg); 
     } 
    } 
) 

EDIT2:

如何填充一個隱藏字段,並使用在服務器端的是價值,因爲你不能使用只讀域或使用AJAX?

$('#hiddenField').val('Naperville'); 

由於該字段是隱藏的,用戶不會知道其中的差別=)

EDIT3:

OP得到這個用正確的服務器端語法只讀投入工作:

TextBox1.Attributes.Add("readonly","readonly") 
+0

感謝您的答覆亞歷克斯。但是恐怕我必須使用Disabled而不是隻讀。你可以請建議任何替代解決方案。謝謝。 – user788312

+0

嗯...你是否在使用AJAX的帖子? –

+0

不,我不使用AJAX。 – user788312