Javascript选择具有数组样式名称的所有HTML输入字段
我有一个正在构建的表单,希望有一个javascript来选择和操作命名数组中的所有字段:Javascript选择具有数组样式名称的所有HTML输入字段,javascript,html,Javascript,Html,我有一个正在构建的表单,希望有一个javascript来选择和操作命名数组中的所有字段: <input type="text" name="location[street]" value required /> <input type="text" name="location[city]" value required /> <input type="text" name="location[zip]" value required /> <input
<input type="text" name="location[street]" value required />
<input type="text" name="location[city]" value required />
<input type="text" name="location[zip]" value required />
<input type="text" name="location[state]" value required />
如何为javascript构建选择器以切换所有元素的禁用状态
Jquery是可能的,但不是首选。我更喜欢不使用库的方法,比如document.getElementsByName()。我认为它不支持选择器通过属性获取元素,就像jQuery是input[name^=“location”]
()。那么,试试这个:
var els = document.querySelectorAll('input');
for (var i = 0; i < els.length; i++)
{
if (els[i].name.indexOf("location") > -1)
{
els[i].disabled = true;
}
}
我认为它不支持选择器通过属性获取元素,就像jQuery是输入[name^=“location”]
()。那么,试试这个:
var els = document.querySelectorAll('input');
for (var i = 0; i < els.length; i++)
{
if (els[i].name.indexOf("location") > -1)
{
els[i].disabled = true;
}
}
我认为它不支持选择器通过属性获取元素,就像jQuery是输入[name^=“location”]
()。那么,试试这个:
var els = document.querySelectorAll('input');
for (var i = 0; i < els.length; i++)
{
if (els[i].name.indexOf("location") > -1)
{
els[i].disabled = true;
}
}
我认为它不支持选择器通过属性获取元素,就像jQuery是输入[name^=“location”]
()。那么,试试这个:
var els = document.querySelectorAll('input');
for (var i = 0; i < els.length; i++)
{
if (els[i].name.indexOf("location") > -1)
{
els[i].disabled = true;
}
}
查询选择器的替代方法是getElementsByTagName
var i;
var inputs = document.getElementsByTagName("input");
for (i = 0; i < inputs.length; ++i) {
var name = inputs[i].getAttribute("name");
if(name.indexOf("location") > -1)
{
inputs[i].disabled = true;
console.log(name);
}
}
vari;
var inputs=document.getElementsByTagName(“输入”);
对于(i=0;i-1)
{
输入[i]。禁用=真;
console.log(名称);
}
}
查询选择器的替代方法是getElementsByTagName
var i;
var inputs = document.getElementsByTagName("input");
for (i = 0; i < inputs.length; ++i) {
var name = inputs[i].getAttribute("name");
if(name.indexOf("location") > -1)
{
inputs[i].disabled = true;
console.log(name);
}
}
vari;
var inputs=document.getElementsByTagName(“输入”);
对于(i=0;i-1)
{
输入[i]。禁用=真;
console.log(名称);
}
}
查询选择器的替代方法是getElementsByTagName
var i;
var inputs = document.getElementsByTagName("input");
for (i = 0; i < inputs.length; ++i) {
var name = inputs[i].getAttribute("name");
if(name.indexOf("location") > -1)
{
inputs[i].disabled = true;
console.log(name);
}
}
vari;
var inputs=document.getElementsByTagName(“输入”);
对于(i=0;i-1)
{
输入[i]。禁用=真;
console.log(名称);
}
}
查询选择器的替代方法是getElementsByTagName
var i;
var inputs = document.getElementsByTagName("input");
for (i = 0; i < inputs.length; ++i) {
var name = inputs[i].getAttribute("name");
if(name.indexOf("location") > -1)
{
inputs[i].disabled = true;
console.log(name);
}
}
vari;
var inputs=document.getElementsByTagName(“输入”);
对于(i=0;i-1)
{
输入[i]。禁用=真;
console.log(名称);
}
}
这是可行的,但是,它不包括任何TEXTAREA或SELECT表单元素(这是我在问题中没有提到它们的错误)。如果我必须循环所有输入元素,我不妨循环所有表单元素并进行相同的比较。将querySelectorAll()更改为document.getElementById('form_id')。元素,以便也可以选择非输入表单类型。。。但除此之外,这个答案是正确的。使用document.querySelectorAll('input,textarea,select')比使用form.elements更有效吗?在这种情况下,我认为
form.elements
应该适合您的需要,但我真的不知道在这种情况下哪个更好。您可以做的是为所有元素设置一个类,从名称标记中的location
开始,然后使用.location element
选择它们。在这种情况下,querySelectorAll
将更有意义。使用一个变量作为长度,这样您就不会反复计算它。但是,这是可行的,它不包括任何TEXTAREA或SELECT表单元素(这是我在问题中没有提到它们的错误)。如果我必须循环所有输入元素,我不妨循环所有表单元素并进行相同的比较。将querySelectorAll()更改为document.getElementById('form_id')。元素,以便也可以选择非输入表单类型。。。但除此之外,这个答案是正确的。使用document.querySelectorAll('input,textarea,select')比使用form.elements更有效吗?在这种情况下,我认为form.elements
应该适合您的需要,但我真的不知道在这种情况下哪个更好。您可以做的是为所有元素设置一个类,从名称标记中的location
开始,然后使用.location element
选择它们。在这种情况下,querySelectorAll
将更有意义。使用一个变量作为长度,这样您就不会反复计算它。但是,这是可行的,它不包括任何TEXTAREA或SELECT表单元素(这是我在问题中没有提到它们的错误)。如果我必须循环所有输入元素,我不妨循环所有表单元素并进行相同的比较。将querySelectorAll()更改为document.getElementById('form_id')。元素,以便也可以选择非输入表单类型。。。但除此之外,这个答案是正确的。使用document.querySelectorAll('input,textarea,select')比使用form.elements更有效吗?在这种情况下,我认为form.elements
应该适合您的需要,但我真的不知道在这种情况下哪个更好。您可以做的是为所有元素设置一个类,从名称标记中的location
开始,然后使用.location element
选择它们。在这种情况下,querySelectorAll
将更有意义。使用一个变量作为长度,这样您就不会反复计算它。但是,这是可行的,它不包括任何TEXTAREA或SELECT表单元素(这是我在问题中没有提到它们的错误)。如果我必须循环所有输入元素,我不妨循环所有表单元素并进行相同的比较。将querySelectorAll()更改为document.getElementById('form_id')。元素,以便也可以选择非输入表单类型。。。但是