jquery ajax验证引擎无法正常工作

时间:2012-07-11 09:35:43

标签: jquery jquery-validation-engine

我的jquery验证表单不是验证..这是像

这样的代码
    <script type='text/javascript'>
    $(document).ready(function()
    {

    $('#frm').validationEngine('validate');
    });
</script>

<div id='gap'> </div>
    <div id='main'>
        <div id='login-box'>
            <h2><span> ".HD_LOGIN." </span></h2>
            <table align='center'>
            <form id='frm' name='frm' >
                <tr> 
                    <td class='name'> <span>".LBL_USERNAME." </span> </td>
                    <td> <span> &nbsp; </span> </td>
                    <td> <input type='text' name='username' id='username' class='input validate[required]'/><input type='hidden' name='login' value='1' /></td>
                </tr>
                <tr>
                    <td id='error-show'> <span> &nbsp </span> </td> 
                </tr>
                <tr> 
                    <td class='name'> <span>".LBL_PASSWORD."</span></td>
                    <td> <span> &nbsp; </span> </td>
                    <td> <input  type='password' name='password' id='password' class='input validate[required]'/></td> 
                </tr>
                <tr>
                    <td id='error-show'><span> &nbsp; </span> </td> 
                </tr>
                <tr>
                    <td> <span> &nbsp; </span> </td>
                    <td> <span> &nbsp; </span> </td>
                    <td> <input class='chckbx' type='checkbox' name='rememberme' value='1'/> <span> ".CHCK_LOGGED." </span> </td> 
                </tr>
                <tr>
                    <td> <span> &nbsp </span> </td> 
                </tr>
                <tr> 
                    <td colspan='3' align='center'> <input type='button' name='but'  value='login' onclick=\"general_ajax1('modules/login/logincontroller.php',$('#frm').serialize())\"/></td> 
                </tr>

            </form> 

现在下面是自定义ajax

if($("#frm").validationEngine('validate'))
       {
function general_ajax1(urld,data)
{
   $.ajax({
        type:'POST',
        url:urld,
        data:data,
        success: function(response){$('#main_content').html(response);}
        });
    }
}

3 个答案:

答案 0 :(得分:5)

错误在您的HTML中。您已将'form'标记放在'table'标记内,但这是不允许的。

<table align='center'>
     <form id='frm' name='frm' > <---- no!
         <tr> 

你必须这样做:

<form id='frm' name='frm' > <---- no!
    <table align='center'>
        <tr> 

请记住将'/ form'标记放在文件末尾的'/ table'标记之外。

此外,该插件似乎有一个错误(我在github上使用主版本)。 默认情况下,'validateAttribute'未定义。在dom ready事件上配置它。

$(function(){
   $.validationEngine.defaults.validateAttribute = "class";
});

这会把事情整理好......

答案 1 :(得分:0)

在启动阶段,您需要附加ValidationEngine。所以在准备好的功能中尝试以下

$(document).ready(function(){ 
    $('#frm').validationEngine('attach'); 
}); 

答案 2 :(得分:0)

<script type='text/javascript'>

    $(document).ready(function(){

        $('#frm').validationEngine();

    });

</script>

试试这种方式.. 然后使用class = validate [required] ..

绑定输入