.asp validate_form以某种方式错了?

时间:2013-09-03 10:17:56

标签: forms validation asp-classic contact

我的“联系我们”表格有点问题,每当我提交时,我都会收到错误消息500. IE告诉我第62行是错误,并且没有指定validate_form。

我的代码是这样的:。

<form method="POST" action="/cgi-bin/emailer.asp" onsubmit="return validate_form(this); ">

我真的对.asp,.php,.js等一无所知。所以真的需要一些帮助。

由于 -Niko

更新

function validate_Form(form)
{
var x=document.forms["yhteys"]["email"].value;
var atpos=x.indexOf("@");
var dotpos=x.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length)
  {
  alert("Sähköposti osoite ei ole oikein.");
  return false;
  }
}

这就是代码现在的样子,但它仍然不起作用。

<form name="yhteys" method="POST" action="/cgi-bin/emailer.asp" onsubmit="return validate_form(this);">
  <div style="float:left;">
    Aihe:<b>*</b><br>
        <select name="Aihe" required="required" id="Aihe">
          <option value="Yhteydenotto">Yhteydenotto</option>
          <option value="Arviokäynti">Arviokäynti</option>
          <option value="Esitetilaus">Esitetilaus</option>
          <option value="Esittelyajan varaus">Esittelyajan varaus</option>
          <option value="Palaute">Palaute</option>
          <option value="Muu viesti">Muu viesti</option>
        </select><br><br>
    Nimi:<b>*</b><br>
    <input type="text" required="required" name="nimi" size="35"><br><br>
    Osoite:<b>*</b><br>
    <input type="text" required="required" name="osoite" size="35"><br><br>
    Puhelin:<b>*</b><br>
    <input type="text" required="required" name="puh" size="35"><br><br>
    Sähköposti:<b>*</b><br>
    <input type="text" required="required" name="email" size="35"><br><br>
    Viesti:<b>*</b><br>
    <textarea rows="5" name="viesti" cols="45" required="required" id="Viesti"></textarea>
    <div style=" margin-right: 2px; margin-top: 2px;"><input type="submit" value="Lähetä" name="B1"></div><br />
    <p>Tähdellä merkityt kohdat ovat pakollisia.</p>
    </form>
  </div>

有完整的表格部分,所以你可以更具体地告诉我什么是错的。

1 个答案:

答案 0 :(得分:1)

validate_form(this)是对您必须定义的JavaScript函数的调用。

它可能看起来像这样:

function validate_form(form){
    if (form.fieldname.value /* fulfills some condition */)
    {
        //this will abort the submit
        return false;
    }
    //will only get called when the if-statement does not return true
    //this allows the submit to procede
    return true;
};

或者你可以声明一个这样的函数:

var validate_form = function(form){/*your code here*/};

您应该将该代码块放在页面的<head> - 部分中:

<script type="text/javascript" >
    // your code
</script>

修改
截至您的javascript:

如果您将此信息发送到您的函数,则无需抓取DOM即可获取您的元素 - &GT;要获取表单中的任何字段(您传递给this - 关键字),您可以执行以下操作:

form.fieldname

这允许您像这样访问您的电子邮件:

var email = form.email.value;

您现在可以通过自定义验证来检查您的电子邮件,但我建议您使用免费提供的正则表达式进行检查。你可以在答案3 here

中找到一个好的
if (!isValid(email)){ //if the given email is not Valid by the function you call
alert("Sähköposti osoite ei ole oikein.");
return false;
}