我的html代码包含多个具有唯一ID的表单。这些表单包含一个输入字段和一个锚标记。 Jquery Click事件与锚标记相关联,该标记淡出父标记即表单
问题1。这个问题是。如果有一个空间(插入符号指示)它的工作正常,其他方面它不会。我不知道这是不是一个jquery bug。
$("form[class='multiwords'] :input:visible:enabled:first").focus();
//-------------------------^-------------------------------//
问题2。当删除第一个表单时,焦点不会设置为下一个文本字段,即值 2
只是一个问题。成功将焦点光标设置为opera中textfield的开头,但是设置为在mozilla结束。这是一个浏览器问题吗?
整个代码
<html>
<head>
<title>test</title>
<script type='text/javascript' src='js/jquery-1.4.2.js'></script>
<script>
$(window).load(function() {
jQuery(document).ready(function() {
jQuery('.perform').live('click', function(event) {
var parentTag = "#"+$(this).parent("form").attr("id");
$(parentTag).fadeOut();
$("form[class='multiwords'] :input:visible:enabled:first").focus();
});
});
});
</script>
<style type="text/css">
.perform{
cursor: pointer;
}
</style>
</head>
<body>
<div id="content">
<form id="f1" class='multiwords' name='f1'>
<input type=text class="input multi" id='i1' name=da value='one'><a hred=# class='perform' id='a1'>Rem Form One</a>
</form>
<form id="f2" class='multiwords' name='f2'>
<input type=text class="input multi" id='i2' name=da value='two'><a hred=# class='perform' id='a2'>Rem Form Two</a>
</form>
<form id="f3" class='multiwords' name='f3'>
<input type=text class="input multi" id='i3' name=da value='two'><a hred=# class='perform' id='a3'>Rem Form Three</a>
</form>
</div>
</body>
</html>
答案 0 :(得分:0)
<强>#1:强> 我建议你使用native focus()方法 -
var input = $("form[class='multiwords'] :input:visible:enabled:first");
if(input.length) {
input[0].focus();
}
IE在jQuery焦点方法方面存在一些问题。以下是this help topic:
的引用触发对隐藏元素的关注会导致Internet Explorer出错。注意只在没有参数的情况下调用.focus()可见元素。
<强>#2:强> 关于插入位置,它是一种浏览器行为。我建议你在每个焦点上选择文字。因此会避免它。