Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:将未知参数传递给回调函数_Javascript - Fatal编程技术网

Javascript:将未知参数传递给回调函数

Javascript:将未知参数传递给回调函数,javascript,Javascript,我有一个通用的表单检查器,一旦验证它需要切换到回调函数来处理表单,我就无法将所需的表单字段转移到回调函数 要求: -检查表单必须是通用的 -表单字段需要传递给回调函数(本例中为updateSection()) 有什么想法吗 下面是当前代码 HTML格式: <form onsubmit="javascript:checkForm(0,updateSection(), event); return false;"> <h2>Update Section</h2&

我有一个通用的表单检查器,一旦验证它需要切换到回调函数来处理表单,我就无法将所需的表单字段转移到回调函数

要求: -检查表单必须是通用的 -表单字段需要传递给回调函数(本例中为updateSection())

有什么想法吗

下面是当前代码

HTML格式:

<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.