javascript - jQuery 验证器 addMethod 总是返回 false

标签 javascript jquery validation

我对 jQuery 验证相当陌生 http://validation.bassistance.de/并尝试使用 addMethod 创建自定义事件。我已经编写了看起来正确但显然不正确的代码,因为如果事件是真的,那么 #email 应该被隐藏,没有任何消息。

发生的情况是,如果事件为 true 或 false,则会显示消息“请输入测试值!”总是被解雇。显然我犯了一个巨大的错误,但似乎找不到纠正的方法。如果有人能指出我的错误,我将不胜感激。我只发布了相关的代码。谢谢

fiddle 代码:http://jsfiddle.net/DQjTc/

更新:只是更新。我注意到,如果在验证后按下提交按钮,则会输入正确的消息,而不会输入错误的消息。这就是我需要的。我们下一步该去哪里。

add方法代码

    $(function() {

    $.validator.addMethod( 'emailHide', function(value, element) 
    {

        if (element.value === '')

            {

                return false;
            }


                //return true;
                $('#email').hide();
                $('#emaillbl').html('Email address approved');


        },'Please enter a value for testing!'


    );
});

验证规则代码

    $(function () {

    $.validator.setDefaults(
    {
        errorClass: 'form_error_frmreport',
        errorElement: 'div'
    });

    $("#frmreport").validate(
    {
        rules:
        {

            email:
            {
                //required: true,
                email: true,
                emailHide: true
            },
            position:
            {
                required: true
            },
            feedback:
            {
                required: true
            }
        },
        messages:
        {


            email:
            {
                //required: "<br />* required: You must enter a valid email address"
            },
            position:
            {
                required: "<br />* required: Please state your position"
            },
            feedback:
            {
                required: "<br />* required: Please enter as much information regarding the exact nature of the problem"
            }
        },

        submitHandler: function()   {
                if ($("#frmreport").valid() === true)  { 
                var data = $("#frmreport").serialize();
                $.post('/sample/admin/frm10010.php', data, function(msg) {

               var messageOutput = '';
                for (var i = 0; i<msg.length; i++){
                    messageOutput += msg[i].box+'  ';     
                }
                $("#confirm_department").hide();


               var $dialog = $('<div id="dialog"></div>')
               .html('Your report was successfully submitted and a representative will respond to you shortly.<br /><br />Thank you.');
               $dialog.dialog({
               autoOpen: true,
               modal: true,
               title: 'Report submission successfull',
               width: 400,
               height: 200,
               draggable: false,
               resizable: false,
               buttons: {
               Close: function() {
               $( this ).dialog( "close" );
               }
               }
               });
                $("#frmreport").get(0).reset();
                }, 'json');

         } else

         { 
           return; 
         }
        },
        success:  function()   {

                //validator.resetForm();
                //$.html("You have entered a box");
                //$("#BA_boxform").get(0).reset();
        }   

    });
});

最佳答案

不确定,但试试这个 将 if (element.value ==='') ** 替换为 **if (value ==='')

关于javascript - jQuery 验证器 addMethod 总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17611879/

相关文章:

javascript - 如何使搜索按钮按 <p> 名称过滤图库图像

javascript - 如何修复react中eslint的 "Component is defined but never used"?

javascript - 以编程方式将具有计算属性的 Vue 组件注入(inject)到另一个组件中

javascript - 如何验证文本区域中的电子邮件地址

jquery - 使用 jQuery 更改跨度之间的文本

node.js - 使用 Express,我可以自动修剪 req.body 中所有传入的 POSTed 字段吗?

javascript - 我可以创建一个 HTML5 表单,将答案直接发送到我的电子邮件,而无需使用 PHP 或 SQL

javascript - 根据函数参数将 CSS 值存储在 var 中,然后对其进行操作

java - DAOManager - 对象验证应该在这里完成还是在特定的 DAO 类中完成?

javascript - Javascript 中的 .innerHTML