2010-01-26 94 views
2

我在Jquery Validation插件中遇到了一些问题,并且想知道是否有人可以提供帮助。JQuery表单验证不适用于新创建的元素

目前,该插件在作品在页面上

$("#addRelease").validate({ 
    submitHandler: function(form) { 
    form.submit(); 
    } 
    }); 

但是如果我动态创建一个按钮点击一个表单目前任何形式的元素时,jQuery验证插上不会为这个新工作创建元素。

// Add release form 
$(function(){ 
$('body#true #releases p a').click(function(){ 
     // Grab form using Jquery 
     $.get('http://localhost:8500/mxRestore/views/viewlets/forms/ajax/a_addRelease.cfm?name_art='+name_art, function(data) { 
     // Place form returned via Jquery on page in formWrapper div   
     $('#formWrapper').html(data); 
    }); 

    return false 
    }); 


}); 

有没有人遇到过这个问题,并知道工作?

非常感谢

回答

3

很难说没有看到您的代码,但是您可能需要在将html插入页面后绑定“validate()”方法,因为在用户启动之前无法通过jQuery找到#addRelease元素ajax调用(通过单击),然后将该元素添加到页面。

// Add release form 
$(function(){ 
    $('body#true #releases p a').click(function(){ 
     // Grab form using Jquery 
     $.get('http://localhost:8500/mxRestore/views/viewlets/forms/ajax/a_addRelease.cfm?name_art='+name_art, function(data) { 
      // Place form returned via Jquery on page in formWrapper div   
      $('#formWrapper').html(data); 
      $("#addRelease").validate({ 
       submitHandler: function(form) { 
        form.submit(); 
        } 
      }); 
     }); 
     return false; 
    }); 
}); 
+0

辉煌的工作完美,谢谢你的协助 – namtax 2010-01-26 21:16:14

2

这是因为$("#addRelease").validate添加事件处理程序到你的HTML元素它被调用的时候。插入新元素后,您必须再次调用它。

+0

是的,谢谢你的工作。 – namtax 2010-01-26 21:16:44