2012-06-21 45 views
-2

我点击按钮,什么都没有发生。如果我拿出验证代码,然后点击该按钮就可以工作,并回落到我已经实现的PHP验证。我首先编写了jQuery验证,然后运行,然后我编写了PHP端。但是,在PHP方面没问题之后,jquery验证就停止了。jquery验证,提交按钮不工作在php

有人可以帮忙吗?

我尝试添加

submitHandler: function(form) { 
    form.submit(); 
} 

这样的:

submitHandler: function(form) { 
    form.submit(); 
}, 
rules: { 
    ... 
} 

但是什么都没有发生。

这里是相关的代码,请让我知道如果有什么不清楚的,谢谢!我一直坚持这一段时间。

if (isset($_POST['submit'])) 
{ 
    foreach($_POST as $key=>$value) 
    { 
     unset($_SESSION[$key]); 
     $_SESSION[$key] = $value; 
    } 
    $errors = validation($job); 
    if (count($errors) == 0) 
    { 
     sendEmail($job); 
     sendEmailToApplicant($job); 
    } 
} 

$output = " 
<script src='http://code.jquery.com/jquery-latest.js'></script> 
<script type='text/javascript' src='http://jzaefferer.github.com/jquery-validation/jquery.validate.js'></script> 
<script type='text/javascript'> 
jQuery.validator.setDefaults({ 
    debug: true, 
    success: 'valid' 
}); 
jQuery.validator.addMethod('phoneUS', function(phone_number, element) { 
    phone_number = phone_number.replace(/\s+/g, ''); 
    return this.optional(element) || phone_number.length > 9 && 
     phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/); 
}, 'Please specify a valid phone number'); 
</script> 
<script> 
    $(document).ready(function(){ 
     $('#applicationForm').validate({ 
      rules: { 
       firstName: { 
        required: true, 
        rangelength: [2, 15] 
       }, 
       lastName: { 
        required: true, 
        rangelength: [2, 15] 
       }, 
       email: { 
        required: true, 
        email: true 
       }, 
       phone: { 
        required: true, 
        phoneUS: true 
       }, 
       website: { 
        url: true 
       } 
      } 
     }); 
    }); 
</script> 


<form id='applicationForm' name='applicationForm' method='post' enctype='multipart/form-data'> 

      ... 

    <input id='submit' type='submit' name='submit' /> 
</form>"; 
+0

哦,我为什么downvoted? –

回答

1

真的很快尝试。不知道是否这是问题,因为我真的没有看起来太近,但为什么有jQuery。在一些动作中,如果你没有jquery.noConflict。

尝试改变这些只是$像这样也许:

<script> 
$(document).ready(function(){ 
    $('#applicationForm').validate({ 
     rules: { 
      firstName: { 
       required: true, 
       rangelength: [2, 15] 
      }, 
      lastName: { 
       required: true, 
       rangelength: [2, 15] 
      }, 
      email: { 
       required: true, 
       email: true 
      }, 
      phone: { 
       required: true, 
       phoneUS: true 
      }, 
      website: { 
       url: true 
      } 
     } 
    }); 

    $.validator.setDefaults({ 
     debug: true, 
     success: 'valid' 
    }); 
    $.validator.addMethod('phoneUS', function(phone_number, element) { 
     phone_number = phone_number.replace(/\s+/g, ''); 
     return this.optional(element) || phone_number.length > 9 && 
      phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/); 
    }, 'Please specify a valid phone number'); 
}); 

+0

这是完美的谢谢。我不认为我自己会意识到这一点。 –

0

检查后是否已取得使用下面的代码完成:

if($_SERVER['REQUEST_METHOD'] == 'POST'){

检查提交按钮是否存在等是非常不可靠的。

+0

但它似乎根本不会调用验证,页面不应该刷新,以便jquery验证运行正确吗? –