DaRiYs
28-10-2010, 12:16
Есть к примеру такая разметка
<table class="dataTable">
<tbody>
<tr>
<td>
<asp:Label ID="lblMinAmount" runat="server" Text="Minimum amount"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbMinAmount" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMinAmount" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbMinAmount"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revMinAmount" runat="server" Display="Dynamic"
ErrorMessage="Enter in format: nnnn,nn" ValidationExpression="^\d+(\,\d\d)?$"
ControlToValidate="tbMinAmount"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:CompareValidator ID="cvMinMaxAmount" runat="server" ErrorMessage="Minimum amount must be less then maximum"
ControlToValidate="tbMinAmount" Display="Dynamic" ControlToCompare="tbMaxAmount"
Type="Double" Operator="LessThan"></asp:CompareValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblMaxAmount" runat="server" Text="Maximum amount"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbMaxAmount" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMaxAmount" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbMaxAmount"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revMaxAmount" runat="server" Display="Dynamic"
ErrorMessage="Enter in format: nnnn,nn" ValidationExpression="^\d+(\,\d\d)?$"
ControlToValidate="tbMaxAmount"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:CompareValidator ID="cvMaxLimit" runat="server" Display="Dynamic" Type="Double"
ValueToCompare="1" ControlToValidate="tbMaxAmount" Operator="LessThanEqual" OnPreRender="cvMaxLimit_OnPreRender"></asp:CompareValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblInterest" runat="server" Text="Interest, %"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbInterest" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvInterest" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbInterest"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revInterest" runat="server" Display="Dynamic"
ErrorMessage="Enter in format: nnnn,nn" ValidationExpression="^\d+(\,\d\d)?$"
ControlToValidate="tbInterest"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:CompareValidator ID="cvInterest" runat="server" ControlToValidate="tbInterest"
Display="Dynamic" ValueToCompare="100" Type="Double" Operator="LessThan" ErrorMessage="Interest must be less then 100%"></asp:CompareValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblMinTerm" runat="server" Text="Minimum term, month  "></asp:Label>
</td>
<td>
<asp:TextBox ID="tbMinTerm" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMinTerm" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbMinTerm"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revMinTerm" runat="server" Display="Dynamic"
ErrorMessage="Enter only integer type" ValidationExpression="\d+" ControlToValidate="tbMinTerm"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:CompareValidator ID="cvMinMaxTerm" runat="server" Display="Dynamic" ControlToValidate="tbMinTerm"
Type="Integer" ControlToCompare="tbMaxTerm" Operator="LessThan" ErrorMessage="Minimum term must be less then maximum"></asp:CompareValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblMaxTerm" runat="server" Text="Maximum term, month  "></asp:Label>
</td>
<td>
<asp:TextBox ID="tbMaxTerm" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMaxTerm" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbMaxTerm"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revMaxTerm" runat="server" Display="Dynamic"
ErrorMessage="Enter only integer type" ValidationExpression="\d+" ControlToValidate="tbMaxTerm"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RangeValidator ID="rvMaxTerm" runat="server" Display="Dynamic" MinimumValue="1"
MaximumValue="300" ControlToValidate="tbMaxTerm" ErrorMessage="Maximum term must be less then 300 months"
Type="Integer"></asp:RangeValidator>
</td>
</tr>
</tbody>
</table>
Когда срабатывает валидатор, содержимое сдвигается вниз, после этого када поправляеш содержимое не валидного поля на валидную информацию и сразу же жмеш на кнопку под этой формой сначала срабатывают валидаторы тоесть скрываются ибо данные уже валидны, и кнопка подьезжает вверх, и нада еще раз по ней кликнуть, тоесть в первый раз кнопка убегает) Как это исправить? И можно ли както сделать так чтоб валидатор не просто выводил строку с ошибкой а както красиво это делал например в сплывающем тултипе?
<table class="dataTable">
<tbody>
<tr>
<td>
<asp:Label ID="lblMinAmount" runat="server" Text="Minimum amount"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbMinAmount" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMinAmount" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbMinAmount"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revMinAmount" runat="server" Display="Dynamic"
ErrorMessage="Enter in format: nnnn,nn" ValidationExpression="^\d+(\,\d\d)?$"
ControlToValidate="tbMinAmount"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:CompareValidator ID="cvMinMaxAmount" runat="server" ErrorMessage="Minimum amount must be less then maximum"
ControlToValidate="tbMinAmount" Display="Dynamic" ControlToCompare="tbMaxAmount"
Type="Double" Operator="LessThan"></asp:CompareValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblMaxAmount" runat="server" Text="Maximum amount"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbMaxAmount" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMaxAmount" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbMaxAmount"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revMaxAmount" runat="server" Display="Dynamic"
ErrorMessage="Enter in format: nnnn,nn" ValidationExpression="^\d+(\,\d\d)?$"
ControlToValidate="tbMaxAmount"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:CompareValidator ID="cvMaxLimit" runat="server" Display="Dynamic" Type="Double"
ValueToCompare="1" ControlToValidate="tbMaxAmount" Operator="LessThanEqual" OnPreRender="cvMaxLimit_OnPreRender"></asp:CompareValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblInterest" runat="server" Text="Interest, %"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbInterest" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvInterest" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbInterest"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revInterest" runat="server" Display="Dynamic"
ErrorMessage="Enter in format: nnnn,nn" ValidationExpression="^\d+(\,\d\d)?$"
ControlToValidate="tbInterest"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:CompareValidator ID="cvInterest" runat="server" ControlToValidate="tbInterest"
Display="Dynamic" ValueToCompare="100" Type="Double" Operator="LessThan" ErrorMessage="Interest must be less then 100%"></asp:CompareValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblMinTerm" runat="server" Text="Minimum term, month  "></asp:Label>
</td>
<td>
<asp:TextBox ID="tbMinTerm" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMinTerm" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbMinTerm"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revMinTerm" runat="server" Display="Dynamic"
ErrorMessage="Enter only integer type" ValidationExpression="\d+" ControlToValidate="tbMinTerm"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:CompareValidator ID="cvMinMaxTerm" runat="server" Display="Dynamic" ControlToValidate="tbMinTerm"
Type="Integer" ControlToCompare="tbMaxTerm" Operator="LessThan" ErrorMessage="Minimum term must be less then maximum"></asp:CompareValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblMaxTerm" runat="server" Text="Maximum term, month  "></asp:Label>
</td>
<td>
<asp:TextBox ID="tbMaxTerm" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvMaxTerm" runat="server" Display="Static" ErrorMessage="*"
ControlToValidate="tbMaxTerm"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RegularExpressionValidator ID="revMaxTerm" runat="server" Display="Dynamic"
ErrorMessage="Enter only integer type" ValidationExpression="\d+" ControlToValidate="tbMaxTerm"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td class="noSpacing">
</td>
<td class="noSpacing">
<asp:RangeValidator ID="rvMaxTerm" runat="server" Display="Dynamic" MinimumValue="1"
MaximumValue="300" ControlToValidate="tbMaxTerm" ErrorMessage="Maximum term must be less then 300 months"
Type="Integer"></asp:RangeValidator>
</td>
</tr>
</tbody>
</table>
Когда срабатывает валидатор, содержимое сдвигается вниз, после этого када поправляеш содержимое не валидного поля на валидную информацию и сразу же жмеш на кнопку под этой формой сначала срабатывают валидаторы тоесть скрываются ибо данные уже валидны, и кнопка подьезжает вверх, и нада еще раз по ней кликнуть, тоесть в первый раз кнопка убегает) Как это исправить? И можно ли както сделать так чтоб валидатор не просто выводил строку с ошибкой а както красиво это делал например в сплывающем тултипе?