2012-02-21 90 views
1

我有3個文本框,並且我想檢查它們是否放在一起它們全部加起來大於空白。 完成此操作的最佳方法是什麼?檢查3個文本框是否爲空的最佳方法

<asp:TextBox ID="tbDate" runat="server"></asp:TextBox> 
    <asp:TextBox ID="tbHour" runat="server"></asp:TextBox> 
    <asp:TextBox ID="tbMinutes" runat="server"></asp:TextBox> 

<asp:CustomValidator ID="cvDateControlValidator" runat="server" ErrorMessage="Invalid Date" 
    ValidateEmptyText="True" ClientValidationFunction="validateDateOnClient" ControlToValidate="tbDate" 
    Display="Dynamic"></asp:CustomValidator> 

<script type="text/javascript"> 
    function validateDateOnClient(sender, args) { 
     if (args.Value.length > 0) 
      args.IsValid = false; 

     return args.IsValid; 
    } 

</script> 

一個建議是:

if (tbDate.value != '' || tbHour.value != '' || tbMinutes.value != '') 

我要確保tbDate,tbHour,tbMinutes在一起比空白更大之前,我執行客戶端驗證。

+0

在客戶端還是在服務器上? – 2012-02-21 16:00:36

+0

客戶端驗證 – Rod 2012-02-21 16:02:43

回答

2

我認爲你可以用一個CustomFieldValidator做到這一點。

我覺得你非常接近你自己的答案。我會總和長度這樣的:

if (tbDate.value.length + tbHour.value.length + tbMinutes.value.length > 0) 
0
document.getElementById('<%=tbDate.ClientID%>').value 

...會給你訪問客戶端上的Text屬性 - 這是你在做什麼?

使用這個,你顯然可以對檢索到的字符串執行任何類型的檢查。

編輯:我應該注意,我在這裏做了一個假設,事實上,你已經熟悉了asp驗證器,因此我已經爲你的問題提出了一個javascript解決方案。然而,我會建議你去使用requiredfieldvalidators。

+0

我想知道是否所有3個文本框連接在一起的最佳方式是否大於空白 – Rod 2012-02-21 16:03:31

+0

因此連接這三個值然後測試是否=「」? – 2012-02-21 16:18:59

1

我會用RequiredFieldValidator

<asp:RequiredFieldValidator id="RequiredFieldValidator2" 
        ControlToValidate="yourTextBox" 
        Display="Static" 
        ErrorMessage="*" 
        runat="server"/> 

,然後讓每一個文本框驗證。因爲你不需要任何JavaScript。所以你不需要在控件所做的許多頁面上完成這項工作。

瞭解更多信息

編輯

here或者你可以用JQuery做到這一點。類似這樣的:

function validateDateOnClient(sender, args) { 
     $('input[type=text]').each(function() { 
      if(($this).val().length==0) { 
      args.IsValid = false; 
      } 
    }); 

     return args.IsValid; 
    } 

這將循環頁面上的所有文本框。

+0

我只是想知道如果我能用一個自定義驗證器來驗證包含日期的所有3個文本框。無論是客戶端還是服務器。 – Rod 2012-02-21 16:06:36

+0

更新了答案 – Arion 2012-02-21 17:33:33

0

如果你使用.NET 4,你能做到這一點

(!string.IsNullOrWhiteSpace(tbDate.Text) || !string.IsNullOrWhiteSpace(tbHour.Text) 
|| !string.IsNullOrWhiteSpace(tbMinutes.Text)) 

與早期版本,你可以做

(tbDate.Text.Trim().Length > 0 || tbHour.Text.Trim().Length > 0 || 
tbMinutes.Text.Trim().Length > 0) 

那方式會知道你是否只有一堆空格

0

嘗試th是:

if(tbDate.value > 0 || tbHour.value > 0 || tbMinutes.value > 0) 
{ 

} 
相關問題