0

これにはいくつかの深刻な問題があります。このような 2 つのフィールドがあり、どちらも jquery で日付ピッカーが割り当てられています。

<asp:TextBox ID="RTRP" runat="server" CssClass="textEntry" Width="120"></asp:TextBox>
<asp:CustomValidator runat="server" ID="CustomValidator3" 
   ControlToValidate="RTRP"
   Text="No date selected" 
   ValidateEmptyText="True"
   ClientValidationFunction="clientValidate" 
   Display="Static">
</asp:CustomValidator>
<asp:TextBox ID="ContEd" runat="server" CssClass="textEntry" Width="120"></asp:TextBox>
<asp:CustomValidator runat="server" ID="CustomValidator1"
    ControlToValidate="ContEd"
    Text="No date selected" 
    ValidateEmptyText="True"
    ClientValidationFunction="clientValidate" 
    Display="Static">
</asp:CustomValidator>

次の JavaScript を使用して検証します。

$("#<%=RTRP.ClientID %>").datepicker();
$("#<%=ContEd.ClientID %>").datepicker();

function clientValidate(sender, args) {
    args.IsValid = args.Value.length > 0;
}

どちらも日付ピッカーを取得しますが、検証関数は単純に起動を拒否し、常にフォームの送信を許可します。私はここで完全に迷っています。何が間違っていますか?

4

4 に答える 4

1

ここで、文字列lengthが 0 より小さいかどうか (真ではないこと) を確認しています。

function clientValidate(sender, args) {
    if (args.Value.length < 0) {
        args.IsValid = false;
    } else {
        args.IsValid = true;
    }
}

これがあなたが望むものかどうかはわかりませんが(単純に a を使用できますRequiredFieldValidator)、しかし...

function clientValidate(sender, args) {
    args.IsValid = args.Value.length > 0;
}
于 2013-01-21T08:32:39.120 に答える
0

なぜあなたは使わないのですか

<asp:RequiredFieldValidator id="id" controltovalidate="controlname" erormessage="please enter the dates"> 
</asp:RequiredFieldValidator>

私を訂正してください私は間違っています

于 2013-01-21T08:36:47.840 に答える
0

メソッドをこれに変更して、再試行してください

function clientValidate(sender, args)
{
  if(Page_ClientValidate())
  {
   if (args.Value.length < 0)
   {
    args.IsValid = false;
   } else
   {
    args.IsValid = true;
   }
  }
}
于 2013-01-21T08:41:23.090 に答える
0

$.datepicker() 動作を任意のテキストに割り当ててページを実行すると、jQuery datepicker をオーバーライドするテキストボックスに css set display : none.. が設定されていることがわかります。これが、カスタム検証が取得されない理由である可能性があります。テキストボックス...

于 2013-01-21T08:35:39.090 に答える