我是javascript的新手。我想在我的html页面上获取所有输入类型密码。
我知道有一种方法可以使用Javascript进行此类操作,但我不知道如何。
然后,对于每一个,我想为文本更改分配一个事件。
我该怎么做?
由于
答案 0 :(得分:12)
我认为你的意思是
<input type="password">
如果是这样,你可以尝试这样的功能:
function getPwdInputs() {
var ary = [];
var inputs = document.getElementsByTagName("input");
for (var i=0; i<inputs.length; i++) {
if (inputs[i].type.toLowerCase() === "password") {
ary.push(inputs[i]);
}
}
return ary;
}
答案 1 :(得分:4)
我希望Robusto不介意我为一个在现代浏览器上表现更好的解决方案扩展他的解决方案。 Chrome,Safari,IE8和Firefox均支持querySelectorAll
,因此如果可用,似乎更合适。
function getPwdInputs()
{
// If querySelectorAll is supported, just use that!
if (document.querySelectorAll)
return document.querySelectorAll("input[type='password']");
// If not, use Robusto's solution
var ary = [];
var inputs = document.getElementsByTagName("input");
for (var i=0; i<inputs.length; i++) {
if (inputs[i].type.toLowerCase() === "password") {
ary.push(inputs[i]);
}
}
return ary;
}
NB。它应该不是问题,但值得注意的是querySelectorAll
将返回一个集合,而fallback方法将返回一个数组。仍然没什么大不了的,它们都有length
属性,成员的访问方式相同。
答案 2 :(得分:3)
您可以使用jQuery
轻松完成此操作jQuery("input[type='password']").change( function() {
// check input ($(this).val()) for validity here
});
答案 3 :(得分:1)
jQuery是你的朋友。使用jQuery,它就像使用选择器一样简单:
$('input[type=password]');
然后将changed
侦听器绑定到每个:
$('input[type=password]').change(function ()
{
// do whatever here
});
答案 4 :(得分:0)
这是未经测试的,但这样的事情应该有效:
var allElem = document.getElementsByTagName(’input’)
for (i=0; i < allElem.length; i++) {
if (allElem[i].getAttribute(’type’)==‘password’) {
allElem[i].onchange = //<your onchange function>
}
}