我有一个通用的表单检查器,一旦验证它需要切换到一个回调函数来处理表单,我坚持将所需的表单字段转到回调函数。
要求: - checkForm需要是通用的 - 表单字段需要传递给回调函数(在这种情况下为updateSection())
有什么想法吗?
以下当前代码......
HTML Forrm:
<form onsubmit="javascript:checkForm(0,updateSection(), event); return false;">
<h2>Update Section</h2>
<p><?php echo $partsAvailable; ?></p>
<p><input type="text" id="sectionTitle" placeholder="Title" /></p>
<p><textarea id="sectionContent" placeholder="Content"></textarea></p>
<p><button type="submit">Update</button></p>
</form>
JavaScript代码:
var allGood = false;
// General form checker
function checkForm(which, callback, evt) {
evt.preventDefault();
// We need to check a form to make sure nothing is missed
var t = document.getElementsByTagName('form')[which];
var rows = t.getElementsByTagName('p');
var allGood = false;
for(var i = 0; i < rows.length-1; i++) {
if(!getVal(rows[i].childNodes[0].id)) {
allGood = false;
}else{
allGood = true;
}
}
if(allGood == true) callback();
return false;
}
// Getting values from inputs
function getVal(el) {
val = '';
switch(el.type) {
case 'text':
val = document.getElementById(el).value;
break;
case 'select':
val = document.getElementById(el).options[document.getElementById(el).selectedIndex].value;
break;
default:
val = document.getElementById(el).innerHTML;
}
return val;
}
function updateSection(part, title, content) {
alert('Function called');
return false;
}