3

我正在使用 jQuery 验证插件。show()一旦页面上没有错误,我正在使用该方法显示提交按钮。

我有一个只有一个选择/下拉菜单的表单。我遇到的问题是当我在选择中选择一个选项时,它不会显示提交按钮,直到我单击页面上的其他位置,当我选择一个有效选项时它应该立即显示它。

有谁知道如何让它触发success() onchangeoronkeyup代替onblur

这是我正在做的一个基本示例:

$form.validate( {
    rules: {
        favoriteSport: {
            required: true
        }
    },
    messages: {
        favoriteSport: "This is required"
    },
    success: function() {
        console.log("yay, it was valid!");

        $("#submit").show();
    }
});
4

3 回答 3

1

我最终添加了对 bind() 的单独调用,因此每当发生更改事件时,它都会针对选择菜单的 ID 运行 $validate()。

很难相信这不是内置在插件中的,因为它是最流行的 jQuery 表单验证插件。

这是一个例子:

$("#favoriteSport").bind("change keyup", function() {
    $form.validate().element("#favoriteSport");
});
于 2011-04-13T17:26:12.617 回答
0

试试这个.change()而不是.blur()....

$("#idofSelect").change(function(){

  $("#submitButtonID").show()

})
于 2011-04-13T17:10:30.000 回答
0

自从提出这个问题以来已经有很长时间了,我仍然不相信插件开发人员已经提供了对这个问题的本机修复。@Cofey您走在正确的轨道上,我认为对您的答案逻辑稍作改进将有助于使所有选择的解决方案动态化:

$('select').bind('change keyup', function() {
    $('form').validate().element(this);
});
于 2019-01-25T22:03:33.660 回答