在客户端验证时使用jquery更改关联的文本框颜色

时间:2013-05-02 18:42:02

标签: jquery asp.net validation

我想使用jquery选择所需的关联元素的父级并更改css类。

我需要将css类“error”添加到所需字段的span的父div中。 (这会根据我的css为文本框着色。)

我有以下html标记,最初由我的aspx页面生成:

<div class="control-group">
  <label>Your name</label>
  <input name="ctl00$MainContent$txtName" type="text" maxlength="100" id="MainContent_txtName">
  <span data-val-controltovalidate="MainContent_txtName" data-val-errormessage="Your name is required" data-val-display="Dynamic" id="MainContent_txtNameRequired" class="error" data-val="true" data-val-evaluationfunction="RequiredFieldValidatorEvaluateIsValid" data-val-initialvalue="" style="display:none;">This field is required</span>
</div>

在“客户端验证”之后,范围变为:

<span data-val-controltovalidate="MainContent_txtName" data-val-errormessage="Your name is required" data-val-display="Dynamic" id="MainContent_txtNameRequired" class="error" data-val="true" data-val-evaluationfunction="RequiredFieldValidatorEvaluateIsValid" data-val-initialvalue="" style="display: inline;">This field is required</span>

在服务器回发后,跨度实际上是:

<span data-val-controltovalidate="MainContent_txtName" data-val-errormessage="Your name is required" data-val-display="Dynamic" data-val-isvalid="False" id="MainContent_txtNameRequired" class="error" data-val="true" data-val-evaluationfunction="RequiredFieldValidatorEvaluateIsValid" data-val-initialvalue="">This field is required</span>

我想使用一个javascript函数,它不需要在每个按钮上使用onclick函数。我想在很多页面上重用相同的功能。

1 个答案:

答案 0 :(得分:0)

虽然我根据跨度和数据元素找不到具体基于如何执行此操作的答案,而是在一个小时左右之后我发现了另一个问题,帮助我提出了这个解决方案:

<script type="text/javascript">
    $(document).ready(function () {
        $("form").submit(function () {
            if (typeof Page_Validators != 'undefined') {
                var errors = '';
                $.each(Page_Validators, function () {
                    if (!this.isvalid) {
                        $(this).parent().addClass("error");
                    }
                });
            }
        });
    });
</script>

link:Validation event for asp net client side validation