0

我有一个包含 4 个 jQuery 选项卡的页面,每个选项卡上都包含不同的表单。每个表格都应该采用不能大于 100 的数字。

我编写了这个 jQuery 代码来验证表单以确保输入的数字小于 100:

 $(document).ready(function(){ 
    var preventSubmit = 0;
    $('#targetForm').submit(function(){
        $(':input', '#targetForm').each(function(){
            if(this.value > 100){
                $('#message').fadeIn();
                $('#message').fadeOut(4000);
                prevent = 1;

            }//END IF

        });
        if(preventSubmit == 1){
            preventSubmit = 0;
            return false;
        }//END IF
    });
});

它工作正常,但仅适用于第一个选项卡上的表单。如果我单击第二个选项卡并提交无效数据(超过 100 个),它不会验证。

有任何想法吗?

谢谢

4

1 回答 1

0

在您单击每个选项卡并且您的 AJAX 请求完成修改表单后,请务必.submit()通过调用将您的处理程序重新附加到表单:

$('#targetForm').submit(function() {
  $(':input', '#targetForm').each(function() {
    if (this.value > 100) {
      $('#message').fadeIn();
      $('#message').fadeOut(4000);
        prevent = 1;
    }
  });

  if (preventSubmit == 1) {
    preventSubmit = 0;
    return false;
  }
});

假设这是全局 Javascript,它只会在页面最初加载时运行一次。当 AJAX 请求发出并修改同一页面上的表单时,它不会再次运行。因此,您需要在 AJAX 请求返回后再次调用此函数,以确保它出现在新修改的表单上。

于 2013-06-22T06:08:47.890 回答