我在一个页面中有多个表单,并且所有3个表单都调用相同的函数进行验证
validateForm()
验证代码是
if (document.forms["myForm"]) {
var fieldsToCheck = [ ['fname', lang.FirstName], ['lname', lang.LastName], ['email', lang.Email], ['phone_num', lang.PhoneNumber] ];
} // end if there is a form named myforms
else if (document.forms['addressform']) { // save a location form , ['town', lang.Town] is a dropdown
var fieldsToCheck = [ ['nickname', lang.AddressNickname], ['street_no', lang.StreetNumber], ['address', lang.Address] ];
} // end forms
else if (document.forms['passform']) { // save a new password
var fieldsToCheck = [ ['txtNewPassword', lang.NewPassword], ['ctxtNewPassword', lang.ConfirmPassword]];
} // end forms
表格如下:
<form action="/action" name="passform" onsubmit="return validateForm()" method="POST">
其中name是passform,其他表单包含myform和addressform。
现在每当我提交表单时,它总是试图从第一个表单中找出文本输入,我猜是因为document.form["formname"]
检查表单是否存在并继续,因为它存在并不重要您提交的表格是否有办法解决这个问题?
重要:我知道这可能是验证表单的错误方法,因为我可以执行form.submit()函数验证等,但遗憾的是代码不是我的,所以如果有的话使用此设置的解决方案我更喜欢它!
答案 0 :(得分:2)
你必须通过这个
onsubmit="return validateForm(this)"
function validateForm(elem) {
alert( elem.name);
}
答案 1 :(得分:0)
使用以下来获取表单的ID
$("form").submit(function (e) {
e.preventDefault();
var formId = this.id; // "this" is a reference to the submitted form
});