首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CustomValidator in C#不加颜色

CustomValidator in C#不加颜色
EN

Stack Overflow用户
提问于 2015-11-19 11:25:53
回答 1查看 203关注 0票数 0

我试图在网页中的下拉列表中使用CustomValidator,但由于下拉列表的颜色不变,它在表单提交时没有被正确触发。我在文本框上也有同样的验证,但是我显然做错了一些事情,希望得到任何帮助!

我用了这个Change Text Box Color using Required Field Validator. No Extender Controls Please

我认为正在发生的是,验证是在表单提交时触发的。.cs文件和javascript文件中的逻辑是相同的,因此如果用户禁用了javascript,验证仍然应该启动。

下拉列表中的第一个值是"Select value“,所以我的验证说,只要它不是该值,就继续进行。

.aspx文件

代码语言:javascript
复制
<p class="form-row">
        <asp:DropDownList ID="valueDropDown" runat="server"  CssClass="tablet" ></asp:DropDownList>
        <asp:CustomValidator ID="CustomValidator4" runat="server" ErrorMessage=""
            ControlToValidate="valueDropDown" ClientValidationFunction="ValidateDD"
            OnServerValidate="CustomValidator4_ServerValidate"
            ValidateEmptyText="True" >
        </asp:CustomValidator>
 </p>

.cs文件

代码语言:javascript
复制
 protected void CustomValidator4_ServerValidate(object source, ServerValidateEventArgs args)
        {
            bool is_valid = valueDropDown.Text != "Select a value";
            valueDropDown.BackColor = is_valid ? Color.White : Color.Red;
            args.IsValid = is_valid;
        }

Javascript

代码语言:javascript
复制
function ValidateDD(source, args) {
    var is_valid = $("#valueDropDown").val() != "Select a value";
    $("#valueDropDown").css("background-color", is_valid ? "white" : "#EEB4B4"); 
    args.IsValid = is_valid;
}

任何帮助都会很感激--我真的被困在为什么这不起作用了!

编辑

好的,下面是@Gian-Paolo所说的,我现在已经从我的代码中删除了第一个必需的验证器,但是我仍然遇到了同样的问题。这种颜色还没有涂上。

这一点现已被删除:

代码语言:javascript
复制
<asp:RequiredFieldValidator ID="ValidatorDD" ControlToValidate="valueDropDown" runat="server" InitialValue="-1" Text="* Please select a value" ErrorMessage="" CssClass="error" Display="Dynamic" ></asp:RequiredFieldValidator>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-19 11:47:55

您将附加到同一个valueDropDown控件2验证器上:

代码语言:javascript
复制
<asp:RequiredFieldValidator ID="ValidatorDD" ControlToValidate="valueDropDown"... >
</asp:RequiredFieldValidator>
<asp:DropDownList ID="valueDropDown" runat="server"  CssClass="tablet" >
</asp:DropDownList>
<asp:CustomValidator ID="CustomValidator4" ...
        ControlToValidate="valueDropDown" ClientValidationFunction="ValidateDD"...>
</asp:CustomValidator>

我假设javascript将首先运行验证程序代码,并且由于返回false,所以停止评估以下代码。如果浏览器中禁用JS,服务器代码也是如此。尝试删除requiredFieldValidator。

同时,完善你的问题:“(我的定制程序)没有被捡起来”是什么意思?(刚刚意识到我不太明白你的问题)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33802591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档