function onload()
{
var ctrl = document.getElementById("aa");
ctrl.focus();
}
解决方案 »
- struts2+spring 登录成功没问题,登录失败后继续登录不进ACTION
- 求一个开启jmx服务的tomcat6.0的例子
- 问一个getSession()的问题
- 问题
- Java Media Framework 如何使用
- 关于springsecurity的cas配置
- tomcat突然出现莫名其妙的错误
- java web
- java 定时器在windows 中能运行 但在 linux 中不能运行
- 奇怪,HTML为什么将下拉表单命名为search就有问题,search是html保留字吗?
- 关于ibaits动态配置的问题,请教!
- 有了EL+struts2+jstl1.2还需要velocity这样的项目么?
var inputArr = document.getElementByTagName('input');inputArr[0].focus();使用jquery更简单.
$('input').first().focus();
概述
将每一个选择器匹配到的元素合并后一起返回。你可以指定任意多个选择器,并将匹配到的元素合并到一个结果内。参数
selector1Selector一个有效的选择器selector2Selector另一个有效的选择器selectorN (可选)Selector任意多个有效选择器示例
描述:
找到匹配任意一个类的元素。HTML 代码:
<div>div</div>
<p class="myClass">p class="myClass"</p>
<span>span</span>
<p class="notMyClass">p class="notMyClass"</p>jQuery 代码:
$("div,span,p.myClass")结果:
[ <div>div</div>, <p class="myClass">p class="myClass"</p>, <span>span</span> ]
其实我意思就是在INPUT里面多加几个CLASS,然后JQUERY可以很容易就找到,再然后就设置返回的数组的第一个去拿到焦点就好不写了,我看着就已经觉得够烦了
可见性选择器::hidden $(":hidden") 选取所有不可见的元素。包括<input type="hidden">,<div style="display:none;">,<div style="visibility:hidden;">等元素。
若只想去input元素可以$("input:hidden")
:visible $("div:visible") 选取所有可见的<div>元素get(0)就返回第一个元素
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn">
<head>
<title>Test</title>
</head>
<script>
function setFocus(){
var list=document.getElementsByTagName("input");
for(var i=0;i<list.length;i++){
if(!list[i].disabled&&list[i].parentNode.style.display!="none"&&list[i].parentNode.parentNode.style.display!="none"){
list[i].focus();
return;
}
}
}
</script>
<body onload="setFocus();">
<TABLE>
<TR style="display:none">
<TD><input type="text" id="aa" name="a1" value=""/></TD>
<TD><input type="text" id="bb" name="b1" value=""/></TD>
</TR>
<TR>
<TD><input type="text" id="cc" name="c1" value="" disabled="disabled"/></TD>
<TD><input type="text" id="dd" name="d1" value=""/></TD>
</TR>
</TABLE>
</body>
</html>
用刷新,刷新前鼠标点在其他地方,刷新后就没有聚焦在控件上了。
在js里写:
function onload()
{
//第一种
$('input').first().focus();
//第二种
document.getElementByTagName('input').focus();
}
这个函数能正常的判断出元素是否是显示的,如果父元素是隐藏的,返回就是true。
$(document).ready(function () {
//获取所有文本框对象
var text = $("input[type='text']");
//考虑到如果只有一个文本框的情况,text是没有length的
if(text.length == undefined) {
//如果当前文本框的全部父节点都没有隐藏的情况,当前文本框获取焦点并结束
if(isAllShow(text)) {
text.eq(i).focus();
return;
}
} else {
for(var i = 0; i < text.length; i++) {
//如果当前文本框的全部父节点都没有隐藏的情况,当前文本框获取焦点并结束
if(isAllShow(text.eq(i))) {
text.eq(i).focus();
return;
}
}
}
});
//判断当前文本框的所有父节点是否有隐藏的
function isAllShow (text) {
var parents = text.parents();
var isShow = true;
for(var j = 0; j < parents.length; j++) {
if(parents.eq(j).is(":hidden")) {
isShow = false;
break;
}
}
return isShow;
}
text.eq(i).focus(); --> text.focus();
还是JQUERY比较方便
$(document).ready(function () {
//获取所有文本框对象
var text = $("input[type='text']");
//考虑到如果只有一个文本框的情况,text是没有length的
if(text.length == undefined) {
//如果当前文本框不是隐藏、只读或不可用的状态并且该文本框的全部父节点都没有隐藏的情况,当前文本框获取焦点并结束
if(!text.is(":hidden") && text.attr("readonly") == false && text.attr("disabled") == false && isAllShow(text)) {
text.focus();
return;
}
} else {
for(var i = 0; i < text.length; i++) {
//如果当前文本框不是隐藏、只读或不可用的状态并且该文本框的全部父节点都没有隐藏的情况,当前文本框获取焦点并结束
if(!text.is(":hidden") && text.attr("readonly") == false && text.attr("disabled") == false && isAllShow(text.eq(i))) {
text.eq(i).focus();
return;
}
}
}
});
//判断当前文本框的所有父节点是否有隐藏的
function isAllShow (text) {
var parents = text.parents();
var isShow = true;
for(var j = 0; j < parents.length; j++) {
if(parents.eq(j).is(":hidden")) {
isShow = false;
break;
}
}
return isShow;
}
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn">
<head>
<title>Test</title>
</head>
<script>
function setFocus()
{
var list=document.getElementsByTagName("input");
for(var i=0;i<list.length;i++){
if(!list[i].disabled){
var tempObject=returnInput(list[i]);
if(tempObject!=null)
{
list[i].focus();
return;
}
}
}}function returnInput(element)
{ if(element == null)
{
return null;
}
if (typeof(element) != "object")
{
return null;
}
if(element.tagName == 'BODY')
{
return element;
}
if(element.style.display!="none")
{
return returnInput(element.parentNode);
}return null;
}
</script>
<body onload="setFocus();">
<TABLE>
<TR style="display:none">
<TD><input type="text" id="aa" name="a1" value=""/></TD>
<TD><input type="text" id="bb" name="b1" value=""/></TD>
</TR>
<TR>
<TD><input type="text" id="dd" name="d1" value=""/></TD>
<TD><input type="text" id="cc" name="c1" value="" disabled="disabled"/></TD></TR>
</TABLE>
</body>
</html>
经测试,可以使用,主要实现思想是采用的递归方法returnInput
如采用,请给19楼兄弟也加下分,我的部分代码直接拷贝的他的,THX
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script src="jquery.js" LANGUAGE="JavaScript"></script>
<SCRIPT LANGUAGE="JavaScript">
<!--
// update by pp 2010.09.09 10:35 --------disputed code
function setFocus1(){
var tags = $("input:enabled");
for(var i=0;i<tags.length;i++){
//alert('tags[i]== '+tags[i].id);
var readonly = $(tags[i]).attr("readonly");
var isNone = parentNodeIsBlock(tags[i]);
if(tags[i].type == 'text'){ //sift type
if(isNone == true && readonly == false && !(tags[i].disabled)){
tags[i].focus();
//alert("tags[i].id== " +tags[i].id);
return;
}
}
}
} // update by pp 2010.09.09 15:25
function setFocus(){
var tags = $("input[type='text'][readonly='false'][disabled='false']");//sift
for(var i=0;i<tags.length;i++){
if(parentNodeIsBlock(tags[i]) == true){
tags[i].focus();
break;
}
}
} // update by pp 2010.09.09 13:15
function parentNodeIsBlock(childNode){
var isNone = true;
var parentNodes = $(childNode).parents();
for(var i = 0 ; i < parentNodes.length ; i++ ){
//var style = parentNodes[i].style.display;
if(parentNodes.eq(i).is(":hidden")) {
//if(style == 'none'){
isNone = false;
break;
}
}
return isNone;
} function init(){
//...do someThings...
setFocus();
}
//-->
</SCRIPT>
</HEAD><BODY onload="init()">
<TABLE>
<TR style="display:none">
<TD><input readonly type="text" id="aa" name="a1" value=""/></TD>
<TD><input type="text" id="bb" name="b1" value=""/></TD>
</TR>
<TR>
<TD><input readonly type="text" id="cc" name="c1" value=""/></TD>
<TD style="display:none"><div ><input type="text" id="dd" name="d1" value="" /></div></TD>
<TD><input type="button" id="btn" name="btn" value="submit" /></TD>
<TD><input disabled type="text" id="dd" name="d1" value=""/></TD>
</TR>
<TR>
<TD><input readonly type="text" id="ee" name="e1" value=""/></TD>
<TD ><input type="text" id="ff" name="f1" value="" /></TD>
<TD><input readonly type="text" id="gg" name="g1" value=""/></TD>
<TD><input disabled type="text" id="hh" name="h1" value=""/></TD>
</TR><!-- <input type="button" id="btn" name="btn" value="submit" onclick="setFocus();"/> -->
</TABLE>
</BODY>
</HTML>