我似乎无法弄清楚我的JS有什么问题。
我需要的只是功能validateForm
来检查表单上的空字段id
formId
我从来没有在浏览器上收到警报。
这是我的JS:
<script>
$(document).ready(function(){
window.validateForm = validateForm;
function validateForm(formId){
var form=document.getElementById('#formId');
for(i=0; i<form.childNodes.length; i++)
if(form.childNodes[i].tagName!='INPUT'||
typeof form.childNodes[i].value=="undefined")
continue;
else{
var x=form.childNodes[i].value;
if(x==null||x==""){
alert("please fill out all fields");
return false;
}
}
}
</script>
这是html:
<form id="formId" name="myForm" action="mailto:" onsubmit="return validateForm()" method="post">
first field: <input type="text" name="first"></br>
second field: <input type="text" name="second"></br>
third field: <input type="text" name="third"></br>
fourth field: <input type="text" name="fourth"></br>
<input type="submit" value="Submit">
答案 0 :(得分:1)
请检查这个小提琴,看看它在行动http://jsfiddle.net/thefourtheye/p9pDu/1/
您的代码需要进行四项更改
像这样更改表单的定义
<form id="formId" name="myForm" action="mailto:" method="post">
您的validateForm
函数不需要任何参数。
使用document.getElementById
时请勿使用#
。所以,它应该是
document.getElementById('formId')
您只需要这一行就可以确保在提交表单时调用validateForm
。
$('#formId').on('submit', validateForm);
答案 1 :(得分:0)
validateForm
函数在文档就绪回调中定义(在回调函数范围内)。这在全球范围内无法访问。但是您正在尝试访问onsubmit事件中的函数。
在回调函数中的函数定义之后执行此操作,以使函数全局可用:
window.validateForm = validateForm;