jquery表单验证脚本不起作用

时间:2014-03-22 22:42:29

标签: javascript jquery html

您好我在调用jquery脚本时遇到问题。我有一个index.html文件。我在这里包含jquery:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
我的文件和jquery脚本如下:
<script type="text/javascript" src="js/error.handler.js"></script>
然后当单击特殊按钮时,AJAX函数将regForm.html文件加载到index.html的正文中,我有这样的注册表单:
<form name="regForm" id="regForm"action= "save_user.php" method="post"> ****** <ul id ="inputForms"> <li id="l11"><input type = "text" id="login" name="login" size="15" maxlength="15" /></li> </ul> ****** <div id="regButContainer"> <input type="submit" id="regButton2" value="Register Now" name="submit"></div></form>
我尝试用这个脚本验证登录输入字段:

$(function(){
$( "#regForm" ).submit(function( event ) {

    var errors = false;

    if($('#login').value() == ""){
        alert("lLOGIN CANNOT BE EMPTY!");
        errors = true;
}
    if (errors==true) {

        return false;
    }


});});

但是当单击提交按钮时,脚本不起作用,因此它最终会触发save_user.php文件。当我使用html&#39; onsubmit函数并使用标准的javascript函数时,一切正常。但是我想用jquery做一些奇特的事情,所以我切换到它,现在我在砖墙前面。任何人都可以解释我为什么我的脚本拒绝工作?

3 个答案:

答案 0 :(得分:0)

更改

$( '#登录')。值()

$( '#登录')。VAL()

答案 1 :(得分:0)

您需要在AJAX加载表单后放置$('#regForm).submit( )函数。

假设您使用$.load( )执行此操作,它应该与此类似:

$('#form_container').load('regForm.html', function() {
    $( "#regForm" ).submit(function( event ) {
        var errors = false;
        if($('#login').val() == ""){
            alert("lLOGIN CANNOT BE EMPTY!");
            errors = true;
        }
        if (errors==true) {
            return false;
        }
    });
});

原因是因为在添加提交事件时未加载表单。

答案 2 :(得分:0)

只需添加event.preventDefault();在任何情况下,您都希望停止提交表单。 另外我认为你的问题是你应该有$('#login')。val()而不是$('#login')。value()。通常你的脚本应该没有preventDefault();

http://jsfiddle.net/cra5L/

$( "#regForm" ).submit(function( event ) {

    if($('#login').val() == ""){
        event.preventDefault();
        alert("lLOGIN CANNOT BE EMPTY!");
        errors = true;        
    }