2

我正在使用 live() 函数来验证使用 ajax 加载的表单,因为没有它它就无法工作。

以前,我的表单验证是在 onkeyup 完成的(尽管我从未在任何地方指定它)。现在它仅在用户单击提交按钮时才有效。使用 live() 函数时,是否可以恢复我的 onkeyup 验证并保留提交时的验证?

$(".createBtn").live('click', function() {
$("#createAcc").validate({

我正在使用以下插件进行验证。

bassistance.de/jquery-plugins/jquery-plugin-validation/
4

4 回答 4

2

正如 Steven 所说,您可以链接,也可以像这样指定多个事件:

http://jsfiddle.net/gLWRs/1/

$('.createBtn').on({
  click: myFn,
  keyup: myFn    
});​

这也适用于live.

不过,重新阅读您的问题,您可能需要这样的东西,因为这些事件将发生在不同的元素上:

$('.createBtn').on({ click: myFn });
$('input').on({ keyup: myFn });
于 2012-09-21T15:00:37.333 回答
1

您可以将多个事件绑定到同一个元素.. 试试这个

$(".createBtn").live('click keyup', function() {

    yourFunctionCall();
});

从最新的 jQuery 版本开始, .live()也被弃用了。

我建议使用.on()代替..

于 2012-09-21T15:10:33.067 回答
1

您可以使用您的函数并将其设置为一个变量,如下所示:

var myFn = function() { ... };

然后您可以使用两个事件处理程序注册该函数。

$(".createBtn").on('click', myFn).on('keyup', myFn);
于 2012-09-21T14:58:19.047 回答
0

您可以将验证的初始化添加到从 document.ready 上的服务器获取的 html 源中,例如:

if(isAjax)
{
    $(function() {
       // Init you validation
    });
}
于 2012-09-21T15:05:34.220 回答