Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Validation - Fatal编程技术网

向数组添加动态输入字段值的纯Javascript方法

向数组添加动态输入字段值的纯Javascript方法,javascript,arrays,validation,Javascript,Arrays,Validation,编辑 从下面的解决方案开始,我能够构建以下内容,我可以使用这些内容创建时间戳: // Ready the Chunking Function so we can group entries function array_chunk( input, size ) { for(var x, i = 0, c = -1, l = input.length, n = []; i < l; i++){ (x = i % size) ? n[c][x] = input[i] :

编辑

从下面的解决方案开始,我能够构建以下内容,我可以使用这些内容创建时间戳:

// Ready the Chunking Function so we can group entries
function array_chunk( input, size ) {
    for(var x, i = 0, c = -1, l = input.length, n = []; i < l; i++){
        (x = i % size) ? n[c][x] = input[i] : n[++c] = [input[i]];
    }
    return n;
}

// Ready the Zero Prepend-er so dates are always correct
function twoDigitFormat( num ) {
    return ( num.toString().length < 2 ? "0"+num : num ).toString();
}

// Get the Elements, a Nodelist (NL) from the page
var entires = document.getElementsByName('input_252[]');

// Convert NL to Array and Chunk within the Array
for (k = 0; k < entires.length; k++) {
    var entries = array_chunk(entires, 7);
}

// Loop through entries array to get each entry array
for ( i = 0; i < entries.length; i++ ) {
    var entry = entries[i];

    // Loop through each entry array to get the values
    for ( j = 0; j < entry.length; j++ ) {

        var value = entry[j];

        // get all of the parts
        var month = twoDigitFormat(entry[0].value);
        var day = twoDigitFormat(entry[1].value);
        var year = entry[2].value;
        var stime = entry[3].value;
        var stimeperiod = entry[4].value;
        var etime = entry[5].value;
        var etimeperiod = entry[6].value;

    }

    // Make Human Timestamps for each entry array
    var sessionStartString = month + '-' + day + '-' + year + ' ' + stime + '' + stimeperiod;
    var sessionEndString = month + '-' + day + '-' + year + ' ' + etime + '' + etimeperiod;
但我总是返回错误-有些东西是未定义的,或者另一个东西不是函数。我认为这一定是因为
document.getElementsByName('input_252[])
返回节点列表,而不是逗号分隔的字符串。

请尝试:

var inputs = document.getElementsByName('input_252[]');
var i;
for (i = 0; i < inputs.length; i++) {
   var input = inputs[i];
   // work with input (validate, etc.)
}
var inputs=document.getElementsByName('input_252[]);
var i;
对于(i=0;i
试试:

var inputs=document.getElementsByName('input_252[]);
var i;
对于(i=0;i
您是否试图实现以下目标:

var dateTimesArray = new Array();
document.getElementsByName('input_252[]').forEach( function () {
    dateTimesArray.push(this).val());
    }
);
注意:出于测试目的,我使用了一个通用正则表达式,只接受字母表

代码 函数getRowHTML(id){ var HTML=“”+ "" + “

”+ ""; 返回HTML; } 函数createHTML(){ var_html=“”; 对于(var i=0;i<5;){ _html+=getRowHTML(“txt”+i++); } document.getElementById(“内容”).innerHTML=\uHTML; } 函数validateInputs(){ var regex=/^[a-z]+$/gi; var inputs=document.getElementsByName(“input_252[]); Array.prototype.forEach.call(输入,函数(txt){ var lblErr=txt.nextSibling; lblErr.innerText=regex.test(txt.value)?“”:“无效值”; }); } (功能(){ createHTML(); })()
.row{
宽度:90%;
填充物:5px;
保证金:5px;
}
.错误{
颜色:红色;
}


验证
您是否试图实现以下目标:

var dateTimesArray = new Array();
document.getElementsByName('input_252[]').forEach( function () {
    dateTimesArray.push(this).val());
    }
);
注意:出于测试目的,我使用了一个通用正则表达式,只接受字母表

代码 函数getRowHTML(id){ var HTML=“”+ "" + “

”+ ""; 返回HTML; } 函数createHTML(){ var_html=“”; 对于(var i=0;i<5;){ _html+=getRowHTML(“txt”+i++); } document.getElementById(“内容”).innerHTML=\uHTML; } 函数validateInputs(){ var regex=/^[a-z]+$/gi; var inputs=document.getElementsByName(“input_252[]); Array.prototype.forEach.call(输入,函数(txt){ var lblErr=txt.nextSibling; lblErr.innerText=regex.test(txt.value)?“”:“无效值”; }); } (功能(){ createHTML(); })()
.row{
宽度:90%;
填充物:5px;
保证金:5px;
}
.错误{
颜色:红色;
}


验证
NodeList没有forEach函数。尝试
Array.prototype.forEach(getElementsByName('input252[])、函数(input){console.log(input.value);})
。另外
dateTimesArray.push(this.val())
此处缺少某些内容。如果您正在使用jQuery@Rajesh,当我输入
var entries=document.getElementsByName('input_252[])
然后在控制台(Chrome)中运行您的建议,返回时出现错误
UncaughtReferenceError:getElementsByName未定义(…)
。你有什么想法吗?@Rajesh-我看到你说的推线不正确。在我的其他验证中,我使用该语法
errorList.push(“错误消息”),成功地将字符串添加到数组中
@Rajesh-我在上面做了另一次编辑,其中包括我在目标和其他问题方面取得的很多进展。函数数组块有点令人困惑。就像你不需要变量l一样。变量x、n和c可以在for之前定义。另外,不要在一个问题中提出多个问题。如果你成功地回答了某人的问题,但又出现了另一个错误,请发布另一个问题并提及该问题作为参考。同样,问题的长度也变长了。您应该只编辑和放置与问题存在相关的一方NodeList没有forEach功能。尝试
Array.prototype.forEach(getElementsByName('input252[])、函数(input){console.log(input.value);})
。另外
dateTimesArray.push(this.val())
此处缺少某些内容。如果您正在使用jQuery@Rajesh,当我输入
var entries=document.getElementsByName('input_252[])
然后在控制台(Chrome)中运行您的建议,返回时出现错误
UncaughtReferenceError:getElementsByName未定义(…)
。你有什么想法吗?@Rajesh-我看到你说的推线不正确。在我的其他验证中,我使用该语法
errorList.push(“错误消息”),成功地将字符串添加到数组中
@Rajesh-我在上面做了另一次编辑,其中包括我在目标和其他问题方面取得的很多进展。函数数组块有点令人困惑。就像你不需要变量l一样。变量x、n和c可以在for之前定义。另外,不要在一个问题中提出多个问题。如果你成功地回答了某人的问题,但又出现了另一个错误,请发布另一个问题并提及该问题作为参考。同样,问题的长度也变长了。您应该编辑并仅将与问题相关的一方放在存在问题的地方Y@remdevtec!我从那个操作中得到了一个有用的数组<代码>输入[1]返回
在控制台中。您是否也了解如何使用新的输入数组捕获表单上输入的值?我希望重新创建jQuery中的函数:在每个第7个元素上的块数组
$each\u class\u session=array\u Chunk($class\u sessions,7)
对于每个子数组
foreach($class\u session为$class\u session){
获取要处理的值(例如,
$month=$class\u session[0];
从这里您可以得到输入HTML对象。通过此操作,您可以获得值(
input.value
)和
选项卡索引,如果我正确的话,可以通过设置
$class_sessions = rgpost( 'input_252' );                //get complete array
$each_class_session = array_chunk($class_sessions, 7);  //chunk array on every 7th element
foreach ($each_class_session as $class_session) {       //foreach sub array

    $month = $class_session[0];
    $day = $class_session[1];
    $year = $class_session[2];
    $stime = $class_session[3];
    $stimeperiod = $class_session[4];
    $etime = $class_session[5];
    $etimeperiod = $class_session[6];

    $date = $month .'/'. $day .'/'. $year;
    $start_time = $stime . $stimeperiod;
    $end_time = $etime . $etimeperiod;

    $unix_start = strtotime($date.$start_time);
    $unix_end = strtotime($date.$end_time);

    $user_start = date("m/d/Y H:i:s ", $unix_start);
    $user_end = date("m/d/Y H:i:s ", $unix_end);

    $diff = $unix_start - $unix_end;
    $hours = $diff / ( 60 * 60 );

    if ($hours < 0) $hours = -$hours;               

    $output .= '<p>$unix_start: '. $unix_start .'</p>';
    $output .= '<p>$unix_end: '. $unix_end .'</p>';
    $output .= '<p>$user_start: '. $user_start .'</p>';
    $output .= '<p>$user_end: '. $user_end .'</p>';
    $output .= '<p>$hours: '.$hours.'</p>';

}

$output .= '</div>';

echo $output;
}
var dateTimesArray = new Array();
document.getElementsByName('input_252[]').forEach( function () {
    dateTimesArray.push(this).val());
    }
);
var inputs = document.getElementsByName('input_252[]');
var i;
for (i = 0; i < inputs.length; i++) {
   var input = inputs[i];
   // work with input (validate, etc.)
}