この質問への回答を読んで学んだことを取り入れた後、オートコンプリートフィールドで、利用可能な選択のいずれにも対応しないテキストをユーザーが入力したときに、エラー メッセージを生成する方法を見つけました。
このページは、ASP.NET バリデータのインフラストラクチャが既にある ASP.NET ページです。私がやりたいことは、ユーザーがリストにないものを入力したときにページの検証が失敗する原因となるバリデーターをページに導入することです。これが私がこれまでに持っているものです:
上記の質問に対する匿名の回答から始めました。
change: function (event, ui) {
if (!ui.item) {
$(this).val('');
}
}
autocomplete()
私はそれを私のjavascriptでこれに置き換えました:
change: function (event, ui) {
if (!ui.item) {
$(""#" + lblAutocompleteError.ClientID + @""").show();
$(""#" + txtDummy.ClientID + @""").val('');
} else {
$(""#" + lblAutocompleteError.ClientID + @""").hide();
$(""#" + txtDummy.ClientID + @""").val('Dummy');
}
},
フロント エンドではなくコード ビハインドで生成されるのは JavaScript です。
フロント エンドでは、2 つのコントロールを宣言しました。txtDummy
これらは、オートコンプリートに一致する文字列が含まれているかどうかに基づいて設定およびクリアし、入力rfvDummy
する必要がありTextBox
ます。
<asp:RequiredFieldValidator runat="server" ID="rfvDummy"
ControlToValidate="txtDummy" />
<asp:TextBox runat="server" ID="txtDummy" Text="Dummy" Visible="false" />
問題は、RequiredFieldValidator
必要なときに失敗しないことです。さらに重要なことは、ここで間違った道を進んでいるという沈んだ気持ちになることです. hiddenTextBox
と aを作成するRequiredFieldValidator
ことは、私が達成しようとしていることに対してあまりにも多くのハックのように思えます。ユーザーがオートコンプリート リストにない値を入力したときに、他のバリデータのようにフォーマットされたメッセージを使用して、クライアント側でページの検証を失敗させる簡単な方法はありますか?