标签: jquery-validate

MVC4:在验证错误时,将文本框颜色更改为红色

我有一个包含一些文本框的表单,当文本框不包含有效值时,我收到错误消息,但文本框颜色不会更改为红色。

这就是我所拥有的

模型

public class AddCompany
{
    public int Id { get; set; }

    [Required(ErrorMessage = "*Name is required")]
    public string Name { get; set; }

    [Required(ErrorMessage = "*Address is required")]
    [RegularExpression(@"^\(?([0-9]{4})\)?([A-Z]{2})",ErrorMessage = "*Not a valid Zip Code, Must be in format 1234AB")]
    public string Address { get; set; }

    [Required(ErrorMessage = "*Phone Number is required")]
    [DataType(DataType.PhoneNumber)]
    [RegularExpression(@"^\(?([0-9]{10})", ErrorMessage = "*Not a valid number, must be 10 numbers")]
    public string Phone { get; set; }

    [DataType(DataType.DateTime)]
    public DateTime DateTimeAdded { …
Run Code Online (Sandbox Code Playgroud)

css asp.net-mvc jquery-validate unobtrusive-validation asp.net-mvc-4

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

如何覆盖你自己的 jQuery 验证方法?

我使用 jQuery 验证方法,并设置了一些默认设置,如下所示

$.validator.setDefaults({
    errorContainer : "#msgErrors ul",
    errorLabelContainer: "#msgErrors",
    wrapper: "li",
    submitHandler: function(form) {
        lockScreen();
        if (typeof url !== 'undefined' && url != null) {
            loadContentViaAjax("tr#idElement", url, $(form).formSerialize(), "html");
        } else {
            form.submit();
        }
    },
    invalidHandler: function() {
        var divsMessages = $(".fadeOutAndEmpty");
        if (divsMessages.is(":animated")) {
            divsMessages.stop().removeAttr("style").show();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

对于这些默认设置工作,我必须通过在我拥有的每个表单上调用验证方法来初始化表单。为了实现这一点,我在页面完全加载后调用了

$("form").validate()
Run Code Online (Sandbox Code Playgroud)

在每个页面加载的外部 JS 文件中。这样我的应用程序中的所有表单都会触发验证方法,但我没有定义任何规则,再次调用验证方法传递实际规则不会完成这项工作。

有没有办法定义必须执行的规则,并且即使已经调用了验证方法,这些规则也会实际执行?

jquery jquery-validate

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

自定义不显眼的验证器不触发

我的 ASP.NET MVC 项目中有一个自定义的不显眼的验证器。我在特定属性上允许该属性的多个实例。一切似乎都正确渲染。属性的每个实例都包含附加到它的另一个小写字母。因此,当它呈现时,它可能类似于data-val-myvalidatoradata-val-myvalidatorb

在客户端,我选择了所有希望添加不显眼的验证器的输入,获取属性,检查额外的小写字母,而不是为每个实例添加新方法和适配器。

如果我运行 F12,我可以看到如果我检查$.validator.methods,我的方法被添加。但是,如果我输入应该失败的数据并点击表单的提交按钮,我的验证器不会验证。我的验证方法是在一个独立的函数中。如果我添加断点,则不会命中。

我能做些什么来确保方法连接正确?

我注意到的另一个问题是,我在属性级别有一个字典来确定将属性添加到 HTML 输入元素的次数。但是,在每次后续回发时,字典都不会重置。我的猜测是我应该覆盖其他一些方法,但我无法确定它是哪个。

asp.net-mvc jquery-validate unobtrusive-validation

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

在javascript中使用时正则表达式无效组错误

我有以下正则表达式检查多种类型的电子邮件地址输入

[\W"]*(?<name>.*?)[\"]*?\s*[<(]?(?<email>\S+@[^\s>)]+)[>)]?
Run Code Online (Sandbox Code Playgroud)

我得到了这个如何在 ruby​​ 中对 3 个主要电子邮件客户端中的名称和电子邮件进行正则表达式?

我面临的问题是,在 javascript 中使用它时,我收到一个错误“未捕获的语法错误:无效的正则表达式/[\W"]*(?"<name>".*?)[\"]*?\s*[<(]?(?"<email>"\S+@[^\s>)]+)[>)]?/::无效的组”

我花了一整天的时间试图解决这个问题,但我发现这个问题与lookbehind javascript不支持有关

我不擅长正则表达式,需要一些建议。有人可以指出我正确的方向。

PS:我正在尝试将此功能与 jquery 验证插件集成

jQuery 验证

javascript regex validation jquery jquery-validate

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

jquery 验证插件 - 仅当字段之一不为空时才验证

jquery 验证插件 - 仅当字段之一不为空时才验证

我应该能够在不更改密码的情况下保存用户名。并且仅当当前密码不为空时才验证 #frmMyprofile。如何做到这一点?

Javascript 验证代码:

$('#frmMyProfile').validate({
        rules: {
            "user[current_password]": "required",
            "user[password]": {
                required: true,
                minlength: 6
            },
            "user[password_confirmation]": {
                required: true,
                minlength: 6,
                equalTo: "#user_password"
            }
        },
        messages: {
            "user[current_password]": "Please enter your current password",
            "user[password]": {
                required: "Please enter new password",
                minlength: "Please enter at least 6 characters"
            },
            "user[password_confirmation]": {
                required: "Please enter confirm password",
                equalTo: "Please enter the same value as the new password."
            }
        }
});
Run Code Online (Sandbox Code Playgroud)

HTML: 我应该只能保存用户名或密码或两者都保存。如果当前密码不为空,它应该只验证。

<form accept-charset="UTF-8" action="/users" class="form-stacked" id="frmMyProfile" method="post" novalidate="novalidate"><div style="margin:0;padding:0;display:inline"><input name="utf8" …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery jquery-validate

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

具有多个连续点的 URL 是否有效

我对 url使用jquery 验证器,它为此 url 返回 true:

http://www.abc...com

我不确定它是否是一个有效的网址?

url jquery-validate

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

单个元素的 Jquery 验证插件 errorplacement

我正在使用 Jquery 验证插件来验证表单。当验证表单的一个元素对齐方式不正确时。

如果您看到图像,则在验证表单时,城市字段图标 +按钮对齐方式不正确。因为标签错误验证显示在 input 元素和icon + 之间。我需要在元素下方显示错误消息。

对于城市字段,我的html代码是这样的

    <tr>
        <td align="right"><span class="mandetry">*</span> City:</td>
         <td>
       <div class="input-group" id="app_details">
      <input type="text" class="form-control client_city" name="client_city" id="city_name" value="<?php echo set_value('client_city')?>"> 
     <span class="input-group-btn">
     <a class="btn btn-default" id='addnewcity' href="<?php echo base_url('addnewcity')?>"><i class="fa fa-plus-square"></i></a>
     </span>
   <div id="messageBox"></div> <!-- Here i would like to display message-->
    </div> </tr>
Run Code Online (Sandbox Code Playgroud)

js代码是这样的

$(document).ready(function(){
$('#add_client').validate({
    errorClass: 'validation_errors',
    debug: false,
     rules: {
         client_name:{required:true},
         client_address:{required:true},
         client_city:{required:true},
         errorPlacement: function(error, element) {
                if (element.attr("name") == "client_city" )
                {
                    error.appendTo("#messageBox");
                } …
Run Code Online (Sandbox Code Playgroud)

html javascript css jquery jquery-validate

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

变量作为字段名jquery验证规则

我目前正在使用 jquery 验证规则插件,但遇到了以下问题。虽然我的一些输入字段具有静态 ID。有一些字段是动态生成的,因此 ID 不是静态的。不幸的是,我无法控制生成的 ID。我可以使用 .each 循环来获取 ID,但是如何将 ID 变量传递给规则进行验证。有没有办法在字段名称中使用变量?如果这些字段只需要我会使用不同的方法,但是我需要对输入进行正则表达式检查。

$j('form').validate({
    rules:{
        txtFirstName: 'required',                                                        
        txtLastName: 'required',                               
        txtEmail: 'required',
        randomIdFieldVariable: 'Regex check"
    }
);
Run Code Online (Sandbox Code Playgroud)

regex each jquery jquery-validate

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

我怎样才能让 typeahead.js 与 jquery.validate 一起玩得很好?

我有一个使用 jQuery 验证的 ASP.NET MVC 5 网站(jquery.validate.js在 MVC 项目模板中)。我正在尝试使用typeahead.js在表单中的输入字段之一上实现预输入功能。(该表单恰好在引导模式内)。

因为提交表单会发出 AJAX 请求,所以表单提交事件被困如下:

$form.on("submit", function (e) {

    if (!$form.valid()) {
        return false;
    }

    ... do stuff ...
Run Code Online (Sandbox Code Playgroud)

请注意,此处发生的第一件事是检查表单是否存在任何验证错误,如 jQuery 验证库检测到的那样。

如果我使用typeahead,那么一切都很好。我可以在表单中输入值并提交,一切都很好。

但是,只要我执行以下操作将预输入功能添加到我的输入中:

$("#myInput").typeahead({
    minLength: 1,
    highlight: true
},
{
    source: mySource
});
Run Code Online (Sandbox Code Playgroud)

...然后我不能再提交表格了。我的形式被认为是合法的:$form.valid()回报false

我认为typeahead.js图书馆正在向表单添加一些额外的元素(包括隐藏的输入),这让jquery.validate.js图书馆感到困惑。

使用 Chrome F12,似乎那里有一个输入看起来像原始输入的副本,遗憾的是该副本似乎已被复制,因此它也具有所有 jQuery 验证属性的副本。

我该如何解决这个问题?

javascript jquery jquery-validate typeahead.js

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

如何在 jquery.validate() 远程类规则中获取当前字段名称

我正在尝试在添加 classRule 时重组通过 jquery.validate() 远程发送的数据。

jQuery.validator.addClassRules("remote-validation", {
  required: true,
  remote: {
            url : '/!/check/?ajax=true',
            type:'post',
            data: { table : $('body').attr('data-app'), id: $('input[name=id]').val(), field: $(this).val() }               
            }
});
Run Code Online (Sandbox Code Playgroud)

只是试图提取正在使用的字段名称,以便更轻松地处理服务器端,但似乎无法找出如何提取正在验证的当前字段。

我的目标是生成以下内容

{ table : 'companies', id: '123', field: 'companyName }
Run Code Online (Sandbox Code Playgroud)

任何建议非常感谢

jquery jquery-validate

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