标签: customvalidator

我可以在服务器端调用CustomValidator方法而无需分配ControlToValidate吗?

我有来自同一组的3个RadioButton,每个radioButton都启用了它的列表框.我想检查是否检查了radiobutton,以及是否从列表框中选择了项目.

所以我使用CustomValidator只使用服务器端方法来检查条件并触发特定的ErrorMessage.

我的问题是,我可以调用此方法无法将customValidator分配给控件,因为我有3个可能的radioButtons?

谢谢,艾迪

asp.net validation customvalidator

6
推荐指数
1
解决办法
5580
查看次数

以devise_invitable的邀请形式添加自定义字段的验证

据我所知,设计只对电子邮件和密码进行验证,可以在初始化程序devise.rb中重新配置:

  # ==> Configuration for :validatable
  # Range for password length. Default is 6..128.
  # config.password_length = 6..128

  # Regex to use to validate the email address
  # config.email_regexp = /\A([\w\.%\+\-]+)@([\w\-]+\.)+([\w]{2,})\z/i
Run Code Online (Sandbox Code Playgroud)

如何添加自定义字段的验证,已添加到devise_invitable的邀请表单中?

例如,我需要验证表单中的first_和last_名称:

= simple_form_for resource, :as => resource_name, :url => invitation_path(resource_name) do |f|
  = f.input :first_name
  = f.input :last_name
  = f.input :email
  = f.button :submit
Run Code Online (Sandbox Code Playgroud)

提前致谢!

validation customvalidator devise ruby-on-rails-3

6
推荐指数
0
解决办法
1365
查看次数

自定义验证器触发但不会阻止回发

我已经看到了很多关于这个的问题,但我很难过!请帮忙!

我有一个customvalidator.它正在开火,但它并没有阻止回发.请帮我这样做!我可以看到console.log在帖子之前注册.但是,无论如何它都会回复.如何防止回发?

我已经尝试添加一个控件来验证,并验证空文本是否等于true.我也尝试添加e.preventdefault,这不起作用:(

如何防止回发?

    <script type="text/javascript">
//<![CDATA[
function validateWhyUnlikely(source, args) {
    console.log(1);
    args.isValid = false;
}
//]]>
Run Code Online (Sandbox Code Playgroud)

<asp:TextBox ID="txtWhyUnlikely" runat="server" Rows="4" cols="20"
            CssClass="surveyTextArea" />
<asp:CustomValidator runat="server" ID="cfvWhyUnlikley" ErrorMessage="Please provide a reason since you rated an item as unlikely to provide."
        CssClass="surveyError surveySmallIndent" Display="Dynamic" 
        ClientValidationFunction="validateWhyUnlikely" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" CssClass="smallSpecial" OnClick="btnSubmit_Click" />


jQuery(document).ready(function () {
    jQuery('#<%= btnSubmit.ClientID %>').click(function (e) {
        if (Page.IsValid == false) {
            console.log(false);
            e.preventDefault();
            return false;
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

customvalidator asp.net-4.0 c#-4.0 jquery-1.4

6
推荐指数
1
解决办法
1万
查看次数

使用自定义验证属性时获取错误消息

我正在使用像这样的CustomValidationAttribute

[CustomValidation(typeof(MyValidator),"Validate",ErrorMessage = "Foo")]
Run Code Online (Sandbox Code Playgroud)

我的验证器包含此代码

public class MyValidator {
    public static ValidationResult Validate(TestProperty testProperty, ValidationContext validationContext) {
        if (string.IsNullOrEmpty(testProperty.Name)) {
            return new ValidationResult(""); <-- how can I get the error message  from the custom validation attribute? 
        }
        return ValidationResult.Success;
    }
}
Run Code Online (Sandbox Code Playgroud)

那么如何从自定义验证属性中获取错误消息?

c# asp.net-mvc customvalidator data-annotations asp.net-mvc-3

6
推荐指数
2
解决办法
9964
查看次数

.NET Web API:如果instance为null,则类级别验证属性会导致Web API抛出ArgumentNullException

我有一个DTO类,例如,看起来像这样:

public class ExampleDto
{
    [DataMember(Name = "Date", IsRequired = true, Order = 1), Required]
    public DateTime Date { get; set; }

    [DataMember(Name = "ParentExample", IsRequired = false, Order = 2, EmitDefaultValue = false)]
    public Guid? ParentExampleId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

例如,如果用户提供的日期不正确,例如:

<?xml version="1.0" encoding="UTF-8" ?>
<ExampleDto xmlns="http://customurl/">
       <Date>2012-05-25T18:23:INCORRECTDATE</Date>
       <ParentExample>B62F10A8-4998-4626-B5B0-4B9118E11BEC</ParentExample>
</ExampleDto>
Run Code Online (Sandbox Code Playgroud)

或者只是一个空体,然后传递给动作的ExampleDto参数将为null(在前一种情况下,ModelState将有错误).

我将一个CustomValidationAttribute应用于该类,因此类声明如下所示:

[CustomValidation(typeof(CustomExampleValidator), "Validate")]
public class ExampleDto
Run Code Online (Sandbox Code Playgroud)

现在我添加了这个,如果ExampleDto参数为null(由于空体或序列化问题),则抛出ArgumentNullException:

<?xml version="1.0" encoding="UTF-8"?>
<Response xmlns="http://customurl" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <Type>Failure</Type>
    <Message>An unknown error has occurred</Message>
    <Errors>
        <Error>
            <Message>System.ArgumentNullException</Message>
            <MessageDetail>Value cannot be null. Parameter …
Run Code Online (Sandbox Code Playgroud)

.net customvalidator asp.net-mvc-4 asp.net-web-api

6
推荐指数
1
解决办法
1225
查看次数

CustomFalidator客户端验证功能未触发

我认为我试图做的事情相当微不足道,但事实证明这对我很有帮助.情况就是这样.

我有两个单选按钮(使用RadButton实现)和RadTextBox.我想检查客户端,然后在选择两个单选按钮之一时提交RadTextBox不为空的表单(假设是第一个).我使用了CustomValidator,并且我将ValidateEmptyText ="True"设置为没有运气.代码摘录如下:

<asp:Panel runat="server" ID="Panel1">
<table>
    <tr>
        <td class="auto-style5">
            <telerik:RadButton ID="rdBtnIndividual" runat="server" AutoPostBack="False" GroupName="rdEmplrType" 
                Text="Individual" ToggleType="Radio" OnClientCheckedChanged="rdBtnPhysical_CheckedChanged" 
                UseSubmitBehavior="False">
                <ToggleStates>
                    <telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleRadioChecked" />
                    <telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleRadio" />
                </ToggleStates>
            </telerik:RadButton>
        </td>
        <td>
            <telerik:RadButton ID="rdBtnLegal" runat="server" AutoPostBack="False" GroupName="rdEmplrType" Text="Legal Entity" 
                ToggleType="Radio" OnClientCheckedChanged="rdBtnLegal_CheckedChanged" UseSubmitBehavior="False">
                <ToggleStates>
                    <telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleRadioChecked" />
                    <telerik:RadButtonToggleState PrimaryIconCssClass="rbToggleRadio" />
                </ToggleStates>
            </telerik:RadButton>
        </td>
    </tr>
    <tr>
        <td class="auto-style5">
            <label>Name:</label>
        </td>
        <td>
            <telerik:RadTextBox ID="txtName" Runat="server" EmptyMessage="Name" LabelWidth="64px" Resize="None" Width="160px" DisabledStyle-BackColor="Silver">
            </telerik:RadTextBox>
        </td>
        <td><asp:RequiredFieldValidator ID="THIS_IS_WORKING" ControlToValidate="txtName"
                runat="server" ErrorMessage="<img src='images/Exclamation.png' Title='Required Field'/>" >
            </asp:RequiredFieldValidator>
        </td>
    </tr>
    <tr> …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net customvalidator rad-controls telerik

6
推荐指数
1
解决办法
2万
查看次数

Angular 5:找不到模块:错误:无法解析“@angular/forms/src/validators”

我正在尝试使用指令创建自定义验证器,但出现以下错误。

ERROR in ./src/app/CustomValidators/white-space-validator.directive.ts
Module not found: Error: Can't resolve '@angular/forms/src/validators' in 'D:\Angular\Admin\src\app\CustomValidators'
resolve '@angular/forms/src/validators' in 'D:\Angular\Admin\src\app\CustomValidators'
  Parsed request is a module
  using description file: D:\Angular\Admin\package.json (relative path: ./src/app/CustomValidators)
    Field 'browser' doesn't contain a valid alias configuration
  after using description file: D:\Angular\Admin\package.json (relative path: ./src/app/CustomValidators)
    resolve as module.....
Run Code Online (Sandbox Code Playgroud)

指令文件中的代码:

import { Directive } from '@angular/core';
import { ValidatorFn, Validator } from '@angular/forms/src/directives/validators';
import { AbstractControl, FormControl } from '@angular/forms/src/model';
import { NG_VALIDATORS } from '@angular/forms/src/validators';

@Directive({
  selector: '[whiteSpace][ngModel]',
  providers: [ …
Run Code Online (Sandbox Code Playgroud)

customvalidator typescript angular-directive angular-validation angular

6
推荐指数
1
解决办法
2万
查看次数

实体框架复杂类型自定义验证,停止验证递归

我们使用复杂类型来管理我们的可翻译字段,如下所示:

[ComplexType]
public class Translated
{
    [Required]
    public string NL { get; set; }

    [Required]
    public string EN { get; set; }

    [ScaffoldColumn(false)]
    public string TranslatedText
    {
        get
        {
           return Util.Translate(NL, EN); 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我们要求字段存在.但在某些情况下,整个Translated字段是可选的,如:

public class Question
{
    ...

    [Optional(ErrorMessage="Foo")]
    public Translated Description { get; set; }

    ...
}
Run Code Online (Sandbox Code Playgroud)

但是,似乎可以计算Optional属性,当它返回false时,结果不会执行任何操作.

class OptionalAttribute : ValidationAttribute 
{
    public override bool IsValid(object value)
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我将可选属性放在非复杂类型上时,它按预期工作,错误消息将始终为Foo.

最终目标是在两种情况下允许描述为空,但是当填充其中一个字段时,错误当然应该传播.

停止验证递归会导致该字段是可选的,但是如果字段填充,它也会阻止字段的验证.

有关如何实现这一目标的任何想法?

entity-framework customvalidator entity-framework-ctp5 entity-framework-4.1

5
推荐指数
1
解决办法
1976
查看次数

如何使用"validates:attribute"来引用父对象属性的值来验证属性?

O'Reilly的"Head first Rails"(编辑,2009)的练习中,有2个相关的对象.

"飞行"的对象[我用来注释宝石显示每个属性]:

# == Schema Information
#
# Table name: flights
#
#  id                :integer         not null, primary key
#  departure         :datetime
#  arrival           :datetime
#  destination       :string(255)
#  baggage_allowance :decimal(, )
#  capacity          :integer
#  created_at        :datetime
#  updated_at        :datetime
#

class Flight < ActiveRecord::Base
  has_many :seats
end
Run Code Online (Sandbox Code Playgroud)

Ant "Seat"对象:

# == Schema Information
#
# Table name: seats
#
#  id         :integer         not null, primary key
#  flight_id  :integer …
Run Code Online (Sandbox Code Playgroud)

validation ruby-on-rails customvalidator ruby-on-rails-3

5
推荐指数
1
解决办法
2472
查看次数

asp.net - 从另一个事件手动运行客户端验证代码

我想运行任何客户端验证例程连接到特定的文本输入元素.

已使用CustomValidator以下方式设置验证:

<asp:textbox id="AddEstTime" runat="server" Width="55px"></asp:textbox><br />
<asp:CustomValidator ID="AddEstTimeCustomValidator" ClientValidationFunction="AddEstTimeCustomValidator_ClientValidate" OnServerValidate="AddEstTimeCustomValidator_ServerValidate" ErrorMessage="Please enter a time" ControlToValidate="AddEstTime"  runat="server" Display="Dynamic" ValidateEmptyText="true"/>
<asp:CheckBox ID="AddIsTM" runat="server" Text="T&amp;M" />
Run Code Online (Sandbox Code Playgroud)

和javascript:

function AddEstTimeCustomValidator_ClientValidate(sender, args) {
    var checkbox = $("input[id$='IsTM']");
    args.IsValid = checkbox.is(":checked") || args.Value.match(/^\d+$/);
}
Run Code Online (Sandbox Code Playgroud)

CheckBox"AddIsTM"状态的变化,我想重新验证textbox"AddEstTime",利用其钩取CustomValidator"AddEstTimeCustomValidator".

我知道焦点 - >添加一个字符重新聚焦 - >删除字符.我想找到一个更正确的方法.asp.net新手.

asp.net customvalidator

5
推荐指数
1
解决办法
3010
查看次数