0

以下は私のコードです:

<asp:TextBox 
  ID="FromDateTextBox" 
  runat="server" />
<asp:ImageButton 
  ID="FromDateImageButton" 
  runat="server" 
  ImageUrl="~/images/calander.png" />
<ajaxkit:CalendarExtender 
  ID="FromDate" 
  runat="server" 
  TargetControlID="FromDateTextBox" 
  CssClass="CalanderControl" 
  PopupButtonID="FromDateImageButton" 
  Enabled="True" />                
<ajaxkit:MaskedEditExtender 
  id="FromDateMaskedEditExtender" 
  runat="server" 
  targetcontrolid="FromDateTextBox" 
  Mask="99/99/9999" 
  messagevalidatortip="true" 
  onfocuscssclass="MaskedEditFocus" 
  oninvalidcssclass="MaskedEditError" 
  masktype="Date" 
  displaymoney="Left" 
  acceptnegative="Left" 
  errortooltipenabled="True" />
<ajaxkit:MaskedEditValidator 
  id="FromDateMaskedEditValidator" 
  runat="server" 
  controlextender="FromDateMaskedEditExtender" 
  controltovalidate="FromDateTextBox" 
  emptyvaluemessage="Date is required" 
  invalidvaluemessage="Date is invalid" 
  display="Dynamic"
  tooltipmessage="Input a date" 
  emptyvalueblurredtext="*" 
  invalidvalueblurredmessage="*"
  validationgroup="MKE" />

Culture="auto" UICulture="auto"@Pageディレクティブと EnableScriptGlobalization="true" EnableScriptLocalization="true"スクリプトマネージャーで、テキストボックスにクライアントカルチャ固有の日付形式を設定しました。

またGo、ページにボタンがあり、部分的にポストバックします。だから、ボタンがクリックFromDateTextBoxされたときにjavascriptで検証したいと思います。Go

アップデート

javascriptクリックハンドラーを作成する方法を知っています。ただし、マスクされたエディターは既にフォーカスシフトの日付を検証しているため、テキストボックスに有効な日付が含まれているかどうかを確認できるブールプロパティ(IsValidなど)が公開されているはずです。

さらなる試験

また、以下のコードを試してみPage_Validators[f].isvalidましたが、日付が無効で、MaskEditValidatorがテキストボックスの近くに赤い星を表示している場合でも、常にtrueを返します。

function isDateValid() {
  var b = true;              
  for (var f = 0; f < Page_Validators.length; f++) {
    if (!Page_Validators[f].isvalid)
      b = false;
  }
  return b;
}
$('#GoButton').click(function() {

  if (!isDateValid()) {
    return false;
  }
  loadProducts();
});
4

2 に答える 2

0

申し訳ありませんが、[GO] ボタンをクリックしたときに MaskedEditValidator が機能していないということですか? または、自分で日付を確認するための js を書きたい場合はどうでしょうか。この場合、クライアントの onclick イベントを GO ボタンに追加できます。コードビハインドの一例は次のとおりです。

goButton.Attributes["onclick"] = "if (!CheckDate()) return false;";

そして、ページ ファイルに JavaScript 関数を追加します。

function CheckDate()
{
    //check the date here
    return isValid;
}

日付が有効でない場合、CheckDate() は false を返し、goButton イベントもポストバックせずに返されます。

于 2010-05-19T05:46:36.850 に答える
0

解決しました。基本的に、テキストボックスに無効な日付が入力された場合、MaskedEditExtender はテキストボックスの提供された ( OnInvalidCssClass="MaskedEditError") クラスを変更し、検証のチェックポイントとしてそれを取り上げました。

$('#GoButton').click(function () {
  if($('#<%=FromDateTextBox.ClientID%>').hasClass('MaskedEditError')) {
    return false;
  }
}
于 2010-05-19T10:27:21.637 に答える