检查3个文本框是否为空的最佳方法

检查3个文本框是否为空的最佳方法

问题描述:

我有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

我认为你可以用一个CustomFieldValidator做到这一点。

我觉得你非常接近你自己的答案。我会总和长度这样的:

if (tbDate.value.length + tbHour.value.length + tbMinutes.value.length > 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

我会用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

如果你使用.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) 

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

尝试th是:

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

}