DataTypeCheckのjQuery UI datetimepickerおよびASP.NET CompareValidator
-
05-07-2019 - |
質問
jQuery UI datepickerでASP.NETテキストボックスを使用しています。テキストボックスでは、ユーザーが手動で日付を入力したり、既存のエントリをクリアしたりできるように編集できます。 CompareValidatorを追加して、テキストボックスでデータ型チェックを実行すると、datepickerで日付を選択した後にエラーが発生します。エラーはASP.NETクライアント側の検証で発生します。
Microsoft JScript runtime error: 'length' is null or not an object
ValidatorOnChangeでエラーが発生します。どうすれば修正できますか? ASP.NET検証コントロールでdatepickerを使用することは可能ですか?
私のマークアップ:
<asp:Label runat="server" AssociatedControlID="uxInstallDate">Install Date</asp:Label>
<asp:TextBox ID="uxInstallDate" runat="server" Columns="10" />
<asp:CompareValidator runat="server" ControlToValidate="uxInstallDate" Operator="DataTypeCheck" Type="Date" Text="*" ErrorMessage="Install Date must be a date." Display="Dynamic" />
CompareValidatorで欠落しているID属性は意図的であり、追加しても違いはありません。私のjQueryの初期化は次のとおりです。
$(document).ready(function() {
$("#<%= uxInstallDate.ClientID %>").datepicker({ changeMonth: true });
});
他のヒント
Jamieと代替案の解決策に基づく>彼が提供する解決策は、IEでのみ発生するこの奇妙なバグを回避するための私の回避策です。
datepickerコントロールによって選択された日付は有効な日付であると想定しているため、CompareValidatorのメッセージまたは画像エラーが表示されている場合は非表示にします。
$(".myControl").datepicker({
onSelect: function() {
if ($.browser.msie) {
if ($(this).next("span").css("display") != "none") {
$(this).next("span").css("display", "none");
}
}
else {
$(this).trigger('change');
}
}
});
役立つこと
所属していません StackOverflow