Javascript验证语法错误

时间:2010-09-15 10:23:56

标签: javascript validation

我有这个javascript应该在客户端验证。我使用本教程创建了它: http://www.php-mysql-tutorial.com/wikis/php-tutorial/form-validation-using-php.aspx

不幸的是我收到了这个警告: “第48行有语法错误。在修复此错误之前,代码提示可能无效”。

我的代码是110行,所以我不想在这里发布,所以我通过http://www.jslint.com/运行了这个代码,这就是告诉我的: “第4行第5个问题:预期标识符,而是看到'带'。”

我仍然相当迷失,所以这里是代码代码开头的片段:

function checkForm()
{
    var vcompName, vadd1, vadd2, vcountry, vcontact1, vtelephone1, vemail, vsiteurl;
    with(window.document.form1)
    {
        vcompName = compName;
        vadd1 = add;
        vadd2 = add2;
        vcountry = country;
        vcontact1 = name;
        vtelephone1 = tel;      
        vemail = email1;
        vpackage = package;
        vsiteurl = url;
    }

    if(trim(vcompName.value)=='')
    {
        alert('Please enter the company name');
        vcompName.focus();
        return false;
    }
    else if(trim(vadd1.value)=='')
    {
        alert('Please enter your address')
        vadd1.focus();
        return false;
    }
}

你可以看到它是怎么回事...... 这是修剪功能

function trim(str)
{
    return str.replace(/^\s+|\s+$/g,'');
}

2 个答案:

答案 0 :(得分:1)

对你的两个问题都不是真正的答案,而是澄清:这两个错误彼此无关。

前者似乎是你的IDE不理解正则表达式 - 不知道可以做些什么。您使用的是哪个IDE?

后者可能是JSLint拒绝with关键字 - 不确定为什么,但它似乎仍然是valid syntax

答案 1 :(得分:1)

因为这样的语法没有问题,但你应该避免使用关键字,因为它的速度很慢,而且可能存在歧义。我建议你重写下面的块

with(window.document.form1)
    {
        vcompName = compName;
        vadd1 = add;
        vadd2 = add2;
        vcountry = country;
        vcontact1 = name;
        vtelephone1 = tel;      
        vemail = email1;
        vpackage = package;
        vsiteurl = url;
    }

作为

  var o = window.document.form1;
   vcompName = o.compName;
   vadd1 = o.add;
   vadd2 = o.add2;
   vcountry = o.country;
   vcontact1 = o.name;
   vtelephone1 = o.tel;      
   vemail = o.email1;
   vpackage = o.package;
   vsiteurl = o.url;

其他问题很少,但jlint会指出这些问题。