Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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,我是javascript新手。我想在我的html页面上获取所有输入类型的密码 我知道有一种方法可以使用Javascript来完成这类事情,但我不知道怎么做 然后,对于每一个,我想分配一个关于文本更改的事件 我该怎么做 谢谢,我想你是说 <input type="password"> 如果是这样,您可以尝试以下功能: function getPwdInputs() { var ary = []; var inputs = document.getElementsByTag

我是javascript新手。我想在我的html页面上获取所有输入类型的密码

我知道有一种方法可以使用Javascript来完成这类事情,但我不知道怎么做

然后,对于每一个,我想分配一个关于文本更改的事件

我该怎么做

谢谢,我想你是说

<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;
}
函数getPwdInputs(){ var ary=[]; var inputs=document.getElementsByTagName(“输入”);
对于(var i=0;i这是未经测试的,但类似的方法应该可以:

var allElem = document.getElementsByTagName(’input’)

for (i=0; i < allElem.length; i++) {

          if (allElem[i].getAttribute(’type’)==‘password’) {

              allElem[i].onchange = //<your onchange function>
          }    
}
var allegem=document.getElementsByTagName('input'))
对于(i=0;i
您可以使用以下工具轻松完成此操作:

这里是您的朋友。使用jQuery,只需使用选择器即可:

$('input[type=password]');
然后将
已更改的
侦听器绑定到每个:

$('input[type=password]').change(function ()
{
    // do whatever here
});

我希望Robusto不介意我对他的解决方案进行一点扩展,以使其在现代浏览器上表现得更好。Chrome、Safari、IE8和Firefox都支持,因此,如果可以的话,使用它似乎更合适

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; 
} 
函数getPwdInputs() { //如果querySelectorAll受支持,只需使用它! if(document.queryselectoral) returndocument.querySelectorAll(“输入[type='password']”); //如果没有,请使用Robusto的解决方案 var ary=[]; var inputs=document.getElementsByTagName(“输入”);
对于(var i=0;i)您所说的“密码输入类型”是什么意思?致OP:如果您不介意使用jQuery,此解决方案将是您的最佳选择,因为它具有内置的事件处理功能,不会对对象上已有的事件进行破坏。如果您只需设置
.onchange
,则会破坏现有的事件处理程序,如果您想解决此问题,则必须实现自己的方式来存储原始事件处理程序(除非您已经有了一个系统,否则会产生难看的代码)。@Marcel Korpel在这种情况下会有什么区别?如果
inputs[i]。type
为null,则会引发异常,如果它不是字符串,则
toLowerCase
将不存在,也会引发异常。如果
inputs[i].type
是一个字符串,那么
toLowerCase
将始终返回一个字符串。希望您不介意,我将您的答案扩展为使用
queryselectoral
如果它可用,它为我节省了宝贵的秒数,让我可以编写自己的:-)@蕾妮丝:是的,你是对的。在这种情况下没关系。虽然我认为这是一个好习惯。不,我一点也不介意安迪。任何改进都是受欢迎的。在我工作的地方,我们仍然必须支持IE 6,所以我陷入了最低公分母的编码习惯。但是你是对的,document.queryselectoral,如果有的话,更经济。
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; 
}