检查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在一起比空白更大之前,我执行客户端验证。
我认为你可以用一个CustomFieldValidator
做到这一点。
我觉得你非常接近你自己的答案。我会总和长度这样的:
if (tbDate.value.length + tbHour.value.length + tbMinutes.value.length > 0)
document.getElementById('<%=tbDate.ClientID%>').value
...会给你访问客户端上的Text属性 - 这是你在做什么?
使用这个,你显然可以对检索到的字符串执行任何类型的检查。
编辑:我应该注意,我在这里做了一个假设,事实上,你已经熟悉了asp验证器,因此我已经为你的问题提出了一个javascript解决方案。然而,我会建议你去使用requiredfieldvalidators。
我想知道是否所有3个文本框连接在一起的最佳方式是否大于空白 – Rod 2012-02-21 16:03:31
因此连接这三个值然后测试是否=“”? – 2012-02-21 16:18:59
我会用RequiredFieldValidator
<asp:RequiredFieldValidator id="RequiredFieldValidator2"
ControlToValidate="yourTextBox"
Display="Static"
ErrorMessage="*"
runat="server"/>
,然后让每一个文本框验证。因为你不需要任何JavaScript。所以你不需要在控件所做的许多页面上完成这项工作。
了解更多信息
编辑
function validateDateOnClient(sender, args) {
$('input[type=text]').each(function() {
if(($this).val().length==0) {
args.IsValid = false;
}
});
return args.IsValid;
}
这将循环页面上的所有文本框。
如果你使用.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)
{
}
在客户端还是在服务器上? – 2012-02-21 16:00:36
客户端验证 – Rod 2012-02-21 16:02:43