标签: custom-validators

ASP.NET - 具有动态ErrorMessage的自定义验证器

我目前正在尝试确保在文本框中输入的数字可以除以1.25或1.5.我决定天气将数字修改1.25或1.5的方式取决于另一个下拉列表中的内容.例如:如果DDL的选定索引为1,则I mod为1.5,如果为2 I mod为1.25.

但是,我需要向用户显示错误被抛出的原因.自定义验证器的错误消息需要类似"数字必须由1.25设计",反之亦然.

从我可以告诉我代码应该工作.但事实并非如此.我在另一个论坛上看到,获取源代码并使innerText成为错误信息应该可以解决问题.但我必须在某处做错事.当我单步执行我的javascript函数时,它会完美地逐步完成.只是没有错误消息.这是我的代码:

<asp:CustomValidator ID="ValidateFinHeight" runat="server" CssClass="NormLabel" 
Display="Dynamic" 
ControlToValidate="txtFinHeight" 
ClientValidationFunction="validateFinHeight"></asp:CustomValidator>

<script type="text/javascript" language="javascript" >
function validateFinHeight(source, arguments)
{
  var ddl = document.getElementById('cboTubeDia');
  var ddlSelIndex = ddl.selectedIndex

  switch(ddlSelIndex)
  {
    case 0:
        arguments.isValid = true;
        return;     
    case 1:
        if(arguments.value%1.25 != 0)
        {
            source.innerText = "Height must be divisibly by 1.25";
            arguments.isValid = false;
            return;
        }
        else
        {
            arguments.isValid = true;
            return;
        }
    case 2:
        if(arguments.value%1.5 != 0)
        {
            source.innerText = "Height must be divisibly by 1.5";
            arguments.isValid = false; …
Run Code Online (Sandbox Code Playgroud)

javascript asp.net custom-validators

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

即使文本框为空,如何使自定义验证器触发?

我在文本框上设置了自定义验证器.

它只验证文本框中是否有一些文本,我需要在有人点击提交按钮时一直触发.

我怎样才能做到这一点?

asp.net validation custom-validators

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

使用MVC2和EF4进行自定义验证

在ScottGu的博客上是一个如何在EF4中使用MVC2自定义验证的示例:http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx

所以这里的问题:

当VS2010中的Designer为数据库创建对象时,您必须向该类添加[MetadataType(typeof(Person_validation))] Annotation.

但是当我在Designer中更改任何内容时,所有这些注释都会丢失.

是否可以对edmx文件进行自我更改,或者是否有更好的方法将System.ComponentModel.DataAnnotations应用于生成的实体?

谢谢.

asp.net-mvc entity-framework custom-validators

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

如果选择了选项,则为欧芹自定义验证器

我有一个带有几个选项的选择框,如果有人选择其他我希望文本框淡入并且需要它,只要让它显示我很好,那个验证器就在我的位置有问题.

这是我到目前为止所尝试的内容,主要基于可用的一个示例.

conditionalvalue:
    fn: (value, requirements) ->
        if requirements[1] == $(requirements[0]).val()
            return false
        true
Run Code Online (Sandbox Code Playgroud)

在我的领域,我有这个

data-parsley-conditionalvalue='["[name=\"volunteer-check-in-new-name-title-select\"]", "other"]'
Run Code Online (Sandbox Code Playgroud)

这里参考我的选择框是什么样的

<select name="volunteer-check-in-new-name-title-select" data-bind="volunteer-new-final-title-field">
    <option value="dr">Dr.</option>
    <option value="mr">Mr.</option>
    <option value="mrs">Mrs.</option>
    <option value="miss">Miss.</option>
    <option value="ms">Ms.</option>
    <option value="other">Other</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我觉得它与不使用函数的值部分有关?我希望有更多关于此的文件.

javascript jquery custom-validators coffeescript parsley.js

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

如何使用 Angular5 检查表单控件的更改

我使用反应式表单,我有多个输入,我想为三个输入显示一个错误,验证是;字段为必填字段,不得输入空格。

\n\n

组件.html:

\n\n
    <form [formGroup]="contratoForm" class="campo-form">\n        <div class="campoFormulario">\n            <label class="etiquetaFormulario" for="txtCodigoContrato">C\xc3\xb3digo contrato</label>\n            <div style="display:inline-block; position: relative;"  class="control">\n                <input [formControl]="txtCodigoContrato" type="text" id="txtCodigoContrato" name="txtCodigoContrato" class="cajaTexto ancho80" />\n                <span>/</span>\n            </div>                \n            <div style="display:inline-block; position: relative;" class="control">                \n                <input [formControl]="txtCodigoContrato2" type="text" id="txtCodigoContrato2" name="txtCodigoContrato2" class="cajaTexto ancho80" />              \n            </div>\n        </div>\n        <div class="campoFormulario">\n            <label class="etiquetaFormulario" for="txtContrato">Contrato</label>\n            <div style="display:inline-block; position: relative;" class="control">\n                <input [formControl]="txtContrato" type="text" id="txtContrato" name="txtContrato" class="cajaTexto ancho350" />\n\n            </div>\n        </div>\n         <div *ngIf="((!txtCodigoContrato.valid && (txtCodigoContrato.dirty || txtCodigoContrato.touched)) && (txtCodigoContrato.hasError(\'required\') || txtCodigoContrato.hasError(\'hasWhites\')))\n                ||\n                ((!txtCodigoContrato2.valid && (txtCodigoContrato2.dirty …
Run Code Online (Sandbox Code Playgroud)

custom-validators angular angular-reactive-forms

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

Angular 6:无法读取未定义的属性“ get”

我正在使用Angular进行练习,尝试使用“内置验证器”时遇到问题。我尝试将表单字段的值作为参数传递,但是当我尝试执行此操作时,我只是看到标题为“无法读取未定义的属性'get'的未定义”的错误信息:

form.component.ts

this.form = new FormGroup({
      'name': new FormControl(this.name, [
        Validators.required,
        Validators.minLength(4),
        forbiddenNameValidator(this.name)
      ]),
      'alterEgo': new FormControl(this.alterEgo),
      'power': new FormControl(this.power, Validators.required)
    });
Run Code Online (Sandbox Code Playgroud)

...更多代码...

get name(): string { return this.form.get('name').value };
get power(): string { return this.form.get('power').value };
Run Code Online (Sandbox Code Playgroud)

当我尝试将forbiddenNameValidator(this.name)方法作为参数发送时,出现该错误。

form.component.html

<form [formGroup]="form" (ngSubmit)="Ver()">
<div class="form-group">
   <label for="name">Name</label>
   <input type="text" class="form-control" name="name" formControlName="name">
</div>
</form>
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误:

在此处输入图片说明

custom-validators angular angular5 angular6

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

创建类以在 angular 4 中保存所有自定义验证的正确方法

我创建了一个类,其中包含我的应用程序的所有自定义验证。只是想知道这是否是正确的方法。我在网上看到了一些例子并想出了这段代码。每个方法都必须是静态的吗?如果我删除静态密钥工作,我会收到编译错误。

import { FormControl, ValidatorFn } from '@angular/forms';

export class FormValidator {

     static validategreater(maxVal, minVal): ValidatorFn {
    return (control: FormControl) => {
      if (control.dirty) {

          if (enteredValue > maxVal) {
            returnObj['greaterError'] = true;
          }
       if (Object.keys(returnObj).length > 0) {
          return returnObj;
        }
      }
      return null;
    };
  }

}
Run Code Online (Sandbox Code Playgroud)

custom-validators angular angular-reactive-forms angular4-forms

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

尝试创建自定义验证约束时出现UnexpectedTypeException

我正在尝试创建自定义验证约束,这是相关代码:

ValidCoupon.php

<?php
namespace Bcg\UtilsBundle\Validator\Constraints;

use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;


/**
 * @Annotation
 */
class ValidCoupon extends Constraint
{
    public function validatedBy()
    {
        return 'valid_coupon';
    }
    public $message = 'The coupon is not valid.';
}

class ValidCouponValidator extends ConstraintValidator
{
    public function validate($value, Constraint $constraint)
    {
        var_dump($value);
        if (true) {
            $this->context->addViolation(
                $constraint->message,
                array()
            );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我在config.yml中调用这样的服务:

services:
    validator.unique.valid_coupon:
        class: Bcg\UtilsBundle\Validator\Constraints\ValidCoupon
        tags:
            - { name: validator.constraint_validator, alias: valid_coupon }
Run Code Online (Sandbox Code Playgroud)

validation.yml看起来像这样:

Bcg\UtilsBundle\Entity\Order:
    properties:
        coupon:
            - Bcg\UtilsBundle\Validator\Constraints\ValidCoupon: ~
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下:

给出500内部服务器错误的类型为"Symfony\Component\Validator\ConstraintValidatorInterface","Bcg\UtilsBundle\Validator\Constraints\ValidCoupon"的预期参数--UnexpectedTypeException

全堆栈跟踪这里 …

php forms validation custom-validators symfony

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

Spring boot 中的自定义表单验证

我正在开发一个 Spring Boot 应用程序,并且有一个密码重置表单。我正在使用这样的类来验证输入。

public class PasswordResetForm {

    @NotEmpty
    @Size(min=6, message="must be at least 6 characters")
    private String password;

    private String passwordConfirm;

    //Getter and Setters
}
Run Code Online (Sandbox Code Playgroud)

因此,我现在想要验证字段“passwordConfirm”和“password”是否相等,我进行了全面搜索,但找不到如何在这种情况下添加自定义验证。那么,如何为其他字段添加自定义验证呢?

我的控制器的动作看起来像这样

@RequestMapping(value = "/password-change/{id}-{tokenNumber}", method = RequestMethod.POST)
public String changePassword(@PathVariable String id, @PathVariable String tokenNumber, @Valid PasswordResetForm form, BindingResult formBinding, Model model) {

    if (formBinding.hasErrors())
        return "change-password";

    //Other stuff
}
Run Code Online (Sandbox Code Playgroud)

custom-validators bean-validation spring-boot

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

如何在 Angular2 中制作自定义验证器

我正在制作一个自定义验证器来检查输入是否是有效的电子邮件格式。

这是我的验证器类:

import {FormControl} from "@angular/forms";

export class EmailValidator {

    static getEmailValidator() {
        return function emailValidator(control: FormControl): { [s: string]: boolean } {

            if (!control.value.match(/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/)) {
                return {invalidChars: true};
            }
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的 HTML 看起来像这样:

<div class="form-group">

    <input  class="form-control"
            [(ngModel)]="model.email"
            type="text"
            id="name"
            placeholder="Enter your email"
            [formControl]="signupForm.controls['email']"

     >
     <div *ngIf="signupForm.controls['email'].errors?.required&& signupForm.controls['email'].touched"
          class="alert alert-danger">Email is required</div>
     <div *ngIf="signupForm.controls['email'].hasError('invalidChars') && signupForm.controls['email'].touched"
          class="alert alert-danger">Please give a valid email address</div>
Run Code Online (Sandbox Code Playgroud)

我的 HTML 组件:

export class SignupComponent  {


    signupForm: FormGroup;
    email: AbstractControl;

    model: any = …
Run Code Online (Sandbox Code Playgroud)

forms custom-validators angular

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

在 config/application.rb 中,我究竟在哪里放置自定义验证器的自动加载路径

每次我调用 validates_with NumberValidator 时。我收到未初始化的常量错误。我在“app”目录下创建了一个名为验证器的目录。这是我到目前为止。

这是我的模型

class Worker < ActiveRecord::Base
    include ActiveModel::Validations
validates_with NumberValidator

end
Run Code Online (Sandbox Code Playgroud)

这是我的验证器文件

class NumberValidator < ActiveModel::Validator
    def validate(record, attribute, value)
        puts record
        puts attribute
        puts value
    end
end

require File.expand_path('../boot', __FILE__)

require "rails"
# Pick the frameworks you want:
require "active_model/railtie"
require "active_job/railtie"
require "active_record/railtie"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_view/railtie"
require "sprockets/railtie"
# require "rails/test_unit/railtie"

# Require the gems listed in Gemfile, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(*Rails.groups)

module ApplicationName …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails custom-validators

0
推荐指数
1
解决办法
1563
查看次数

如何在ASP MVC中的CSHTML剃刀文件中设置正则表达式?

我想在我的cshtml文件中设置正则表达式,请帮助我如何做到这一点?我不想先在代码中使用正则表达式。

<div class="form-group">
    @Html.LabelFor(model => model.Title, htmlAttributes: new { @class = "control-label col-md-2" })

    <div class="col-md-10">
       @Html.EditorFor(model => model.Title, new { htmlAttributes = new { @class = "form-control", placeholder = "short name", required = "required", RegularExpressionAttribute = @"^([a-zA-Z .&'-]+)$" } })
       @Html.ValidationMessageFor(model => model.Title,"", new { @class = "text-danger" })
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc custom-validators razor

0
推荐指数
1
解决办法
8887
查看次数