Javascript:将未知参数传递给回调函数
我有一个通用的表单检查器,一旦验证它需要切换到回调函数来处理表单,我就无法将所需的表单字段转移到回调函数 要求: -检查表单必须是通用的 -表单字段需要传递给回调函数(本例中为updateSection()) 有什么想法吗 下面是当前代码 HTML格式:Javascript:将未知参数传递给回调函数,javascript,Javascript,我有一个通用的表单检查器,一旦验证它需要切换到回调函数来处理表单,我就无法将所需的表单字段转移到回调函数 要求: -检查表单必须是通用的 -表单字段需要传递给回调函数(本例中为updateSection()) 有什么想法吗 下面是当前代码 HTML格式: <form onsubmit="javascript:checkForm(0,updateSection(), event); return false;"> <h2>Update Section</h2&
<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;
}
var allGood=false;
//通用表格检查器
函数检查表(which、callback、evt){
evt.preventDefault();
//我们需要检查一张表格以确保没有遗漏任何内容
var t=document.getElementsByTagName('form')[which];
var rows=t.getElementsByTagName('p');
var-allGood=false;
对于(变量i=0;i
将回调
函数传递给checkForm()
的方式应该是这样的
<form onsubmit="javascript:checkForm(0,updateSection, event); return false;">
var temp = [];
for(var i = 0; i < rows.length-1; i++) {
if(!getVal(rows[i].childNodes[0].id)) {
allGood = false;
}else{
temp.push(getVal(rows[i].childNodes[0].id);
allGood = true;
}
}
if(allGood == true) callback(temp); // passing all form value as temp array.