GVKun编程网logo

javascript,getelementbyname和焦点(javascript getelementsbyname)

15

在本文中,我们将详细介绍javascript,getelementbyname和焦点的各个方面,并为您提供关于javascriptgetelementsbyname的相关解答,同时,我们也将为您带来关

在本文中,我们将详细介绍javascript,getelementbyname和焦点的各个方面,并为您提供关于javascript getelementsbyname的相关解答,同时,我们也将为您带来关于document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementById_javascript技巧、Document:getElementsByName()使用方法及示例_javascript技巧、getElementByIdx_x js自定义getElementById函数_javascript技巧、IE中getElementsByName()对有些元素无效的解决方案_javascript技巧的有用知识。

本文目录一览:

javascript,getelementbyname和焦点(javascript getelementsbyname)

javascript,getelementbyname和焦点(javascript getelementsbyname)

我正在尝试创建将查看用户名的函数,如果它无效,则向用户发送警报,清除用户名字段,并将用户名字段重新置于焦点.我试图用getElementsBynName()函数完成所有这些.除了让这个领域重新成为焦点之外,所有这些都在努力.我的代码如下.有没有人有什么建议.

function uchecker(uname)
{
var validUname = uname.search(/^\w+@sabc.com$/);
if(validUname != 0)
{
    alert("You have entered an invalid username. \n The username must be a valid @sju.edu    email    address value " + document.getElementsByName('uname')[0].value);
    document.getElementsByName('uname')[0].value = null;
    document.getElementsByName('uname')[0].focus();

    /I have also tried  document.getElementsByName('uname').focus,document.getElementsByName('uname')[0].value.focus();
}@H_301_10@ 
 

}

所以看来,在Java脚本运行之前,焦点的字段会更改为下一个字段,我的密码输入框…也有自己的验证功能.在下一个文本框(密码框)成为焦点之前,我有办法让我的javascript代码运行我的用户名字段吗?

解决方法

JavaScript的:

document.getElementsByName(‘name’)[0].focus()

jQuery的:

$(“#name”)[0].focus()

function valid(){
  var nameObj = document.getElementsByName("testing");
  for(var i=0; i<nameObj.length; i++){
    if(nameObj[i].value == ""){
      //$(nameObj)[i].focus();  //Jquery
      nameObj[i].focus();       //Js
      alert("Please Fill all the text Boxes");
      break;
    }
  }
}@H_301_10@ 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<style>
.input-sm{
  width:200px
}
</style>
<input name="testing"type="text" id="test_01"/><br> 

<input name="testing"type="text" id="test_02"/><br>
<input name="testing"type="text" id="test_03"/><br>
<input name="testing"type="text" id="test_04"/><br>
<input type="button"onclick ="valid()" value="Click Me"/>@H_301_10@

document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementById_javascript技巧

document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementById_javascript技巧

不过,如果您需要查找文档中的一个特定的元素,最有效的方法是 getElementById()。
不过要注意的是使用getElementById时对不同的浏览器执行的结果可能是不同的,以下有相关说明

复制代码 代码如下:

text1:



text2:





我在IE中测试了上面的代码,在第一个文本框中输入1,在第二个文本框中输入2,然后点下面的两个按钮,猜一下结果是什么?
我本意是按钮1返回第一个文本框的值,按钮2返回个文本框的值。
结果是两个按钮都返回了第一个文本框的值。
说明ie执行document.getElementById(elementName)的时候,返回的是第一个name或者id等于elementName的对象,并不是按照ID来查找的。
在fireFox中不存在这样的问题,fireFox执行document.getElementById(elementName)的时候只查找id等于elementName的对象,如果不存在则返回null。
可能IE是考虑的兼容性的问题才这么做的。

以下是我测试所用的代码:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

这个时候我在两个text中输入的值分别为:eee, www
IE中测试结果为:eee , eee
再看当我把中的id去除时,也即上面代码使用注释中的内容时
我同样输入eee, www
IE中测试结果为:www ,eee
仔细分析上面两个测试的结果:得出结论是:每执行getElementById一次,会将web页面中的所有表单按顺序遍历一次,同时查找id,name两个值,如果存在所要找的id则不再继续查找,如果没有相应的id与之对应则看name值是否与之对应,如果有相应的name与之对应,则不再继续查找。也就是说:
ie执行document.getElementById(elementName)的时候,返回的是第一个name或者id等于elementName的对象,并不是仅按照ID来查找的。
而同样的两个测试在firefox下第一个结果为eee,www,而第二个结果因为没有找到id="ccc"所以返回null
对于这个结果还可参见
http://www.jb51.net/article/16852.htm
他还对getElementById与getElementByName进行了分析,值得一看。

Document:getElementsByName()使用方法及示例_javascript技巧

Document:getElementsByName()使用方法及示例_javascript技巧

定义和用法

getElementsByName() 方法可返回带有指定名称的对象的集合。
语法document.getElementsByName(name)

该方法与 getElementById() 方法相似,但是它查询元素的 name 属性,而不是 id 属性。

另外,因为一个文档中的 name 属性可能不唯一(如 HTML 表单中的单选按钮通常具有相同的 name 属性),所有 getElementsByName() 方法返回的是元素的数组,而不是一个元素。

实例
复制代码 代码如下:

















getElementById,它也是只有document对象才能使用,而且返回的是数组的第一个元素,呵呵,它的方法名都写明了是getElement而不是getElements,所以,千万不要搞浑了.getElementsByName返回的是所有name为指定值的所有元素的集合

“根据 NAME 标签属性的值获取对象的集合。”集合比数组要松散的多, 集合里每个子项的类型可以不同, 集合只是把某些元素放在一起作为一类来使用, 相比之下数组就严格多了, 每个子项都是统一的类型. document.getElementsByName, document.getElementsByTagName, document.formName.elements 这类方法所得到的结果都是集合.用于批量更新时的数据传递.

getElementByIdx_x js自定义getElementById函数_javascript技巧

getElementByIdx_x js自定义getElementById函数_javascript技巧

函数代码:

复制代码 代码如下:

document.getElementByIdx_x=function(id){
if(typeof id ==''string'')
return document.getElementById(id);
else
throw new error(''please pass a string as a id!'')
}

实例代码:
复制代码 代码如下:

9

<script> <BR>document.getElementByIdx_x=function(id){ <BR>if(typeof id ==''string'') <BR>return document.getElementById(id); <BR>else <BR>throw new error(''please pass a string as a id!'') <BR>} <BR>var timer = window.setInterval(function(){ <BR>document.getElementByIdx_x(''box'').innerHTML = parseInt(document.getElementByIdx_x(''box'').innerHTML) - 1; <BR>if(parseInt(document.getElementByIdx_x(''box'').innerHTML) < 0) <BR>{ <BR>window.clearInterval(timer); <BR>window.location = ''http://www.jb51.net''; <BR>} <BR>}, 1000); <BR></script>

IE中getElementsByName()对有些元素无效的解决方案_javascript技巧

IE中getElementsByName()对有些元素无效的解决方案_javascript技巧

复制代码 代码如下:

document.getElementsByName(''someName'') 返回一个节点列表(数组)

注意:在IE下有些节点是没有name 属性的,就是用document.getElementsByName获取不到的。只有下面的tag有name属性:
A, APPLET, attribute, BUTTON, EMBED, FORM, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, LINK, MAP, OBJECT, RT, RUBY, SELECT, TEXTAREA

其他都没有,比如 div,span等

替代方案:

前提:假定获取的节点数组的TagName一致。(一般也很少出现获取的节点数组中的节点来自不同Tag)

JSP代码段:

......
<logic:iterate id=''t'' name=''dataList'' >
<trlist''> 
......
<tdnormal''><span name=''tbc''>${t.LOWAREATS_TBC }</span></td>
......
</tr>
</logic:iterate>
......

登录后复制

javascript 代码段:

...... 
var tbcList = document.getElementsByTagName(''span'');
for(var i = 0; i < tbcList.length ; i++) {
if(tbcList[i].name != ''tbc'' ) continue;
//......逻辑代码
} 
......
登录后复制

今天关于javascript,getelementbyname和焦点javascript getelementsbyname的介绍到此结束,谢谢您的阅读,有关document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementById_javascript技巧、Document:getElementsByName()使用方法及示例_javascript技巧、getElementByIdx_x js自定义getElementById函数_javascript技巧、IE中getElementsByName()对有些元素无效的解决方案_javascript技巧等更多相关知识的信息可以在本站进行查询。

本文标签:

上一篇javascript – 如何在可编辑的div中将光标设置在给定的位置(js设置光标位置到框内)

下一篇javascript – 如何将html文档解析为包含每个节点的行号的AST?(js解析html字符串)