ubi*_*con 21 html javascript forms input
这是一个两部分问题.有一天有人回答了类似的问题(其中也包含有关PHP中此类数组的信息),但我找不到它.
1.)首先,在表单中输入标记的name元素末尾创建的数组的正确术语是什么?
<form>
<input name="p_id[]" value="0"/>
<input name="p_id[]" value="1"/>
<input name="p_id[]" value="2"/>
</form>
Run Code Online (Sandbox Code Playgroud)
2.)如何使用JavaScript从该数组中获取信息?具体来说,我现在只想计算数组的元素.这是我做的,但它不起作用.
function form_check(){
for(var i = 0; i < count(document.form.p_id[]); i++){ //Error on this line
if (document.form.p_name[i].value == ''){
window.alert('Name Message');
document.form.p_name[i].focus();
break;
}
else{
if (document.form.p_price[i].value == ''){
window.alert('Price Message');
document.form.p_price[i].focus();
break;
}
else{
update_confirmation();
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Que*_*tin 42
1.)首先,在表单中输入标记的name元素末尾创建的数组的正确术语是什么?
"有时令人困惑的PHPism"
就JavaScript而言,一堆具有相同名称的表单控件只是一堆具有相同名称的表单控件,而包含方括号的表单控件只是表单控件,其名称包含方括号.
PHP的命名约定表单控件具有相同的名称有时是有用的(当你有很多的控制组,这样就可以做这样的事情的:
<input name="name[1]">
<input name="email[1]">
<input name="sex[1]" type="radio" value="m">
<input name="sex[1]" type="radio" value="f">
<input name="name[2]">
<input name="email[2]">
<input name="sex[2]" type="radio" value="m">
<input name="sex[2]" type="radio" value="f">
Run Code Online (Sandbox Code Playgroud)
但确实让一些人感到困惑.其他一些语言已采用该约定,因为它最初是编写的,但通常仅作为可选功能.例如,通过这个JavaScript模块.
2.)如何使用JavaScript从该数组中获取信息?
它仍然只是获取与表单控件相同名称的属性elements
.诀窍是,由于表单控件的名称包含方括号,则不能使用点符号,并必须使用方括号,就像任何其他包含特殊字符JavaScript属性的名称.
由于您有多个具有该名称的元素,因此它将是一个集合而不是单个控件,因此您可以使用标准for循环来循环它,并使用其length属性.
var myForm = document.forms.id_of_form;
var myControls = myForm.elements['p_id[]'];
for (var i = 0; i < myControls.length; i++) {
var aControl = myControls[i];
}
Run Code Online (Sandbox Code Playgroud)
尝试这样的事情:
var p_ids = document.forms[0].elements["p_id[]"];
alert(p_ids.length);
for (var i = 0, len = p_ids.length; i < len; i++) {
alert(p_ids[i].value);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
158399 次 |
最近记录: |