在检查值时提交带有链接的表单

时间:2009-11-06 02:56:23

标签: javascript html forms

我有一个定义为

的HTML表单
<form name="writeYourAd" id="writeYourAd" method="post" action="post.php?action=preview" onsubmit="return checkContentForm(this);" enctype="multipart/form-data">

如果我使用,它可以正常工作。但如果相反我使用它:

<a href="#" class="mmh_orngebtn mmh_grybtn" onclick="javascript:document.writeYourAd.submit();"><span>continue</span></a>

它提交表单但不运行checkContentForm函数(或者至少它让我通过了。)

为什么呢?我该怎么办?

4 个答案:

答案 0 :(得分:1)

尝试将该功能添加到提交按钮作为onclick事件

答案 1 :(得分:1)

我认为您需要将onclick处理程序指向checkContentForm函数。

或者编写自己的提交函数,包括调用checkContentForm然后提交。

答案 2 :(得分:0)

您应该手动调用form.onsubmit(),然后将其删除(如果某些浏览器会在submit()调用时调用它,因为这是他们应该按规范执行的操作,但大部分都没有) ,然后调用form.submit()

另请查看this thread

答案 3 :(得分:0)

它会在你执行onsubmit函数

之前进入你的post.php页面

尝试留在同一页面并使用包含在你post.php

喜欢

if ($_POST[submit]){
 include "post.php";
 echo "<script>return checkContentForm(document.writeYourAd);</script>";
}

或者你可以删除动作,然后使用ajax在checkContentForm()函数之前或之后发送你的帖子

<form name="writeYourAd" id="writeYourAd" method="post" action="" onsubmit="return SendQuery(this);" enctype="multipart/form-data">

JavaScript:

function SendQuery(myForm)
{
 xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }

var url="post.php";
url=url+"?action=preview";
thisForm = myForm;
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged(){
    if (xmlhttp.readyState==4){
        if (xmlhttp.status == 200){
            return checkContentForm(thisForm);
        }
    }
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

只是检查一些错误。