0

要約: ドロップダウン メニューで選択が行われなかった場合にエラー メッセージを設定しようとしています。

詳細:

これは、javascript 関数への呼び出しを含む私の dd です。

<%:Html.DropDownListFor(r => Model.TypeId, TypeItems, new { @class="stretchInput", @onblur = "errorCheck"})%>

これが私のJavaScriptです:

<script type="text/javascript">
    $(document).on("blur", "select[name=TypeId]",
        function errorCheck() {
            var errId = 'Type not chosen. Please choose from the menu.';
            if (document.getElementById('TypeId').selectedIndex == 0) {
                document.getElementById("DetailsError").visibility = 'visible';
                document.getElementById("DetailsError").innerHTML = errId;
            }
        });
</script>

値を変更したいラベルは次のとおりです。

<td><asp:Label ID="DetailsError" runat="server" CssClass="errorMsg" Text="testing" Visible="false"></asp:Label></td>

ちなみに、ASP コントロールであることは承知しています。私は試してみましたHTML labelが、同じ結果が得られました。

エラーメッセージでラベルのテキストを設定しようとしています。私が何もラベルに影響を与えないようです。

私は何が欠けていますか?

4

1 に答える 1

2

ラベルを使用して JavaScript からのエラー メッセージを表示する必要がある場合、つまりコントロールにサーバー側の関連性がない場合は、 を使用できます<span id="DetailsError">

または

を使用し<%=DetailsError.ClientID%>たい HTML/JS コードのどこでも使用できますDetailsError

例:

document.getElementById("<%=DetailsError.ClientID%>").innerHTML = errId;

これは、コピペのソリューションとしてではなく、出発点としてお考えください。

于 2013-07-03T18:15:14.330 に答える