我使用jQuery验证插件。我使用show()
方法来显示提交按钮,一旦页面上没有错误。
我有一个表单,只有一个选择/下拉菜单。我遇到的问题是,当我在选择中选择一个选项时,它不会显示提交按钮,直到我点击页面上的其他地方,当它应该在我选择一个有效的选项时显示它。
有人知道如何让它发射success()
onchange
或onkeyup
而不是onblur
吗?
下面是我正在做的一个基本例子:
$form.validate( {
rules: {
favoriteSport: {
required: true
}
},
messages: {
favoriteSport: "This is required"
},
success: function() {
console.log("yay, it was valid!");
$("#submit").show();
}
});
我最后添加了一个单独的bind()调用,这样每当发生更改事件时,它就会针对选择菜单的ID运行$validate()。
很难相信这不是内置的插件,看看它是如何最流行的jQuery表单验证插件。
下面是一个例子:
$("#favoriteSport").bind("change keyup", function() {
$form.validate().element("#favoriteSport");
});
试试.change()
代替.blur()
....
$("#idofSelect").change(function(){
$("#submitButtonID").show()
})
这个问题已经问了很长时间了,我仍然不相信插件开发人员已经提供了这个问题的本地修复。@Cofey你在正确的轨道上,我认为稍微改进一下你的答案的逻辑将有助于使解决方案对所有选择都是动态的:
$('select').bind('change keyup', function() {
$('form').validate().element(this);
});