带有警报弹出窗口的 jQuery 验证插件 - 仍然出现 - 用户无法在选择框中选择正确的值

标签 jquery jquery-validate alert

我正在使用以下代码:

$().ready(function() {
    $('#state_form').validate({
        rules: {
            state: "required"
        },
        messages: {
            state: 
            {
                required: "The State is required!"
            }
        },          
        errorPlacement: function(error, element) {
            alert(error.html());
        }
    });
});

但是如果用户提交表单,则会出现带有错误的弹出窗口。这是对的。然后,如果用户单击选择框“状态”,仍然会出现带有错误的弹出窗口(不可能选择正确的值)。真实的例子可以在 janzitniak.info/temp/test.php 找到。

这是 Not Acceptable 。我该如何解决这个问题?

JQuery form validation with alert popup - alert still being shown with a valid submit中描述的解决方案没有帮助我,也许我没有正确理解。

最佳答案

使用onclick: false option以防止在选择状态之前触发错误。另外,您只需要使用 .text() 而不是 .html(),因为 alert() 不需要使用 HTML无论如何。

$(document).ready(function () {
    $('#state_form').validate({
        onclick: false, // <-- add this option
        rules: {
            state: "required"
        },
        messages: {
            state: {
                required: "The State is required!"
            }
        },
        errorPlacement: function (error, element) {
            alert(error.text());
        }
    });
});

演示:http://jsfiddle.net/U6N3R/

警告:请勿在 Safari 中使用此代码,否则您将陷入无限循环。似乎 Safari 中的 alert() 在单击“ok”按钮后再次触发 errorPlacement 回调函数。

<小时/>

为了获得更现代的用户体验,我推荐使用 jQuery 模式或工具提示插件。

请参阅此答案作为示例:https://stackoverflow.com/a/14741689/594235

关于带有警报弹出窗口的 jQuery 验证插件 - 仍然出现 - 用户无法在选择框中选择正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14801381/

相关文章:

Jquery - 仅验证多种表单中的一种表单

javascript - 此示例中的 ng-show 不起作用

javascript - 如何在带有 react-alert 的组件中显示消息?

jquery - 如何在隐藏某些元素后使用 css3 转换动画元素移动

JavaScript for 循环替代 : repeat(n, function(i) { ... });

javascript - 如何访问 javascript 数组中的项目 "oranges"

jQuery 验证插件 : Nothing selected, 无法验证,不返回任何内容

asp.net-mvc - 如果另一个属性在 MVC 3/jQuery Validator 上有值,则验证一个属性

android - AlertDialog - 试图让警报工作

java - 添加选择框 ="true"属性时,Struts2 JQuery 插件自动完成不起作用