我有一个定义为
的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函数(或者至少它让我通过了。)
为什么呢?我该怎么办?
答案 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;
}
只是检查一些错误。