2012-08-01 52 views
0

我有一箇中繼器,並在中繼器內有一個文本框和按鈕(一起在ASCX中)。文本框預先填充了提示文本,該文本在焦點上清除。驗證+中繼器+提示文本 - 驗證問題

我的問題是,如果當一個文本框由用戶填充,並且用戶單擊提交按鈕,則提示文本將在其他控件內部提交。

我試圖做自定義驗證,但驗證器試圖驗證中繼器內的所有控件,其他控件仍然包含提示文本,如果它沒有被觸摸。

由於這與ASCX一樣,我不想用服務器端解決方案來強制我更改承載控件的頁面的ItemDataBound事件的代碼。

有沒有客戶端解決方案或服務器端解決方案,我仍然可以封裝在ASCX內部?

回答

0

如果您正在使用的公共屬性傳遞出的ASCX用於處理父頁面的數據,你可以解釋鬼文有...

public property TextValue 
{ 
    get 
    { 
     if (Textbox.Text != "Ghost Text") 
     { 
      return Textbox.Text; 
     } 
    } 
} 

對於客戶端,你可以綁定到按鈕的點擊事件,並清除文本,如果它的鬼文本值匹配...

$(function() { 
    $('#btnSubmit').click(function() { 
     var txt = $(this).siblings('txtValue'); 
     if (txt.val() == 'Please Enter Your Name') 
      txt.val(''); 
    }); 
}) 

你可以使用一個ScriptManager您的ASCX註冊腳本。

+0

這是真的,但我想也在客戶端進行驗證。服務器端驗證在我工作的地方是一個很大的禁忌。 – 2012-08-02 07:23:46

+0

您可以使用UpdatePanel來減輕客戶端驗證的負擔,或者您可以使用InitialValue集的前端使用Validator控件。這會起作用嗎? – CoderMarkus 2012-08-03 22:02:04