Hi
I have a web form requesting information regarding a business. One of the fields is Business Description which may not exceed 1500 characters.
My page starts like this:
Code:
<%@ Page Title="" Language="VB" MasterPageFile="~/MasterPages/ManagementMaster.master" AutoEventWireup="false" CodeFile="Members_AddEdit.aspx.vb" Inherits="Management_Members_AddEdit" %>
<%@ Register Assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.DynamicData" TagPrefix="cc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="cpmainContent" Runat="Server">
<script type="text/javascript">
function ClValidateText(oSrc, args)
{
var txtDesc = document.getElementById('<%= tbBusDesc.ClientID %>');
if (txtDesc.value.length == 10)
{
args.IsValid = 'true'
}
else
{
args.IsValid = 'False'
}
}
</script>
The Details View entries for the field are:
Code:
<EditItemTemplate>
<asp:TextBox ID="tbBusDesc" runat="server" type="multiline" Width="500" Height="100" Text='<%# Bind("BusinessDescription") %>' ></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Please enter a description of the business" ControlToValidate="tbBusDesc" Text="*"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Business Description Exceeds 1500 characters" ControlToValidate="tbBusDesc1" Text="*" OnServervalidate="ValidateText10" Display="Dynamic" ></asp:CustomValidator>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="tbBusDesc" runat="server" type="multiline" Width="500" Height="100" Text='<%# Bind("BusinessDescription") %>' TextMode="MultiLine"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Please enter a description of the business" ControlToValidate="tbBusDesc" Text="*"></asp:RequiredFieldValidator>
<asp:CustomValidator ID="CustomValidator2" runat="server" ErrorMessage="Business Description Exceeds 1500 characters" ControlToValidate="tbBusDesc2" Text="*" OnServerValidate="ValidateText10" ClientValidationFunction="ClValidateText"></asp:CustomValidator>
</InsertItemTemplate>
The server side check works fine:
Code:
Protected Sub ValidateText10(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs)
args.IsValid = args.Value.Length <= 1500
End Sub
(before I added the script for client side checking)
When I try build the page in VS (using ctlF5) I get build errors referencing Line1 and Line 12
Code:
var txtDesc = document.getElementById('<%= tbBusDesc.ClientID %>');
Name tbBusDesc is not declared.
Presumably missing something simple but cannot see what :(