这里有几个问题:
干杯...
答案 0 :(得分:10)
假设您有一个名为myForm
的表单:
var form = document.getElementById('myForm');
抓住提交:
try {
form.addEventListener("submit", someFunction, false);
} catch(e) {
form.attachEvent("onsubmit", someFunction); //Internet Explorer 8-
}
注意:如果您要停止提交表单,请将someFunction
返回false。
提交表格:
form.submit();
答案 1 :(得分:4)
您可以使用addEventListener(event, callback)
,但Internet Explorer从未正确支持它。
IE使用attachEvent(event, callback)
代替。
我强烈建议使用预建的addEvent函数(可用的批量)或jQuery,Prototype,Mootools等库,因为它们都内置了出色的事件处理函数。
答案 2 :(得分:3)
如果你使用jquery,它有一个很好的内置表单提交事件钩子,可以让生活变得非常简单。请查看以下内容:
答案 3 :(得分:2)
1)您在寻找OnSubmit事件吗?
2)你可以在onsubmit事件上调用类似validate()的函数,如果验证失败则返回false。如果返回false,则从onsubmit函数返回false。
可能就像,
<form name="test" OnSubmit = "return Submit()">
function Submit()
{
return Validate()
}
function Validate()
{
//Validation code goes here
}
答案 4 :(得分:0)
我看了一下Serhiy对Sasha帖子的评论。 Serhiy提供的JsFiddle示例很有趣,我想写一个描述Serhiy提到的行为的答案:
假设您有一个名为myForm
的表单:
var form = document.getElementById('myForm');
使用提交按钮时收集提交(&lt; input type ='submit'&gt;):
try {
form.addEventListener("submit", validationFunction, false);
} catch(e) {
form.attachEvent("onsubmit", validationFunction); //Internet Explorer 8-
}
注意:如果您要停止提交表单,请将validationFunction
返回false。
通过javascript提交表单:
form.submit();
注意:如果使用&lt; input type =“button”onclick =“form.submit()”/&gt ;,则不会调用随attachEvent添加的onsubmit事件处理程序。因此,您应该使用类似的东西:
&lt; input type =“button”onclick =“if(validationfunction())form.submit();” /&GT;
或者如果你有一个按钮:
您可以添加javascript以附加到按钮的点击事件。 var btnValidateAndSubmit = document.getElementById(“btnValidateAndSubmit”);
try {
btnValidateAndSubmit .addEventListener("click", validationAndSubmitFunction, false);
} catch(e) {
btnValidateAndSubmit .attachEvent("onclick", validationAndSubmitFunction); //Internet Explorer 8-
}
最后,假设您正在使用SharePoint Web表单来编辑列表项,并且您希望向Web表单添加自定义验证。您可以将以下javascript添加到Web表单,以便为OK按钮的onclick添加自定义验证。
var oElements = document.getElementsByTagName("input");
for (var i=0; i< oElements.length; i++)
{
var elementName = oElements[i].getAttribute("Title");
var elementType = oElements[i].getAttribute("type");
var elementValue = oElements[i].value;
if (elementType=="button" && elementValue=="OK")
{
var okbutton = oElements[i];
// alert("typeof okbutton.onclick = "+typeof okbutton.onclick);
if (typeof okbutton.onclick == "function")
{
var previousfunction = okbutton.onclick;
okbutton.onclick = function()
{
if (validateForm())
{
previousfunction();
}
};
}
else
{
var aspnetForm = document.getElementById("aspnetForm");
aspnetForm.attachEvent("onsubmit",validateForm);
okbutton.onclick = function()
{
if (validateForm())
{
aspnetForm.submit();
}
};
}
}
}