2010-11-06 63 views
0

再次嗨:)
我使用jQuery脚本来显示/隐藏一些内容:聚焦与jQuery“多” HTML输入字段或javascript

<script type="text/javascript"> 
$('.toggleButton').click(function() { 
    var id = this.id.replace('toggleButton', ''); 
    $('#content' + id).toggle(); 
}); 
</script> 

由于我使用PHP,我循环通过少数项目,每个项目都有一个按钮来显示/隐藏其内容。我的内容实际上是一个输入字段很少的表单。在每个项目中,我的表单的第一个字段具有相同的名称(比如'line1')。
我想要做的是当我点击一个项目并打开它的内容时,将焦点放在输入栏'line1'上。当我点击其他项目,把重点放在其'line1'字段,等等...
最好与jQuery,因为我认为它会更简单,但JavaScript的解决方案也将是伟大的:)

谢谢任何帮助!

编辑:我会附上一段代码,这是我需要显示和隐藏...也许它会有一些帮助...我使用codeigniter,所以不要被一些函数困惑:)

echo "<div class=\"toggleButton\" id=\"toggleButton".$item['id']."\">CLICK TO OPEN</div>"; 
echo "<div class=\"content\" id=\"content".$item['id']."\" style=\"display:none;\">"; 
echo form_open('title/add'); // codeigniter's open form 
for ($i = 1; $i <= $item['rows']; $i++) { 
    echo "<input type=\"text\" class=\"line\" id=\"line".($i)."\">".br(); 
} 
echo form_submit('submit', 'submit'); // codeigniter's submit for button 
echo "</form>"; 
echo "</div>"; 
+0

感谢编辑忍者花花公子:)我有该行正确写入在我的剧本中,似乎这只是一个错字在这里... – errata 2010-11-07 12:19:36

回答

3

更改你的最后一行:

$('#content' + id).toggle().find('input').first().focus() 
+0

感谢您的帮助,但由于某种原因,这种超简单和合理的解决方案将不会在我的情况下工作:(你有一些想法,为什么这是行不通的? – errata 2010-11-06 00:39:50

+0

http://stackoverflow.com/questions/2780288/jquery-validation-using-the-class-instead-of-the-name-value – zod 2010-11-06 01:32:50

+0

我不明白,这篇文章有什么?大声笑 – errata 2010-11-07 12:18:08

0

你尝试给普通类名和调用功能基于类名

+0

我不确定你是什么意思,我是jQuery总noob ...我所有的div都有'class'属性,我试过这个:$('。content')。find('input')。 。第一()聚焦();但这不会有效... – errata 2010-11-06 01:11:31

+0

$(“。content”)。focus(); – zod 2010-11-06 01:35:20

+0

喂你zod和感谢您的帮助!不幸的是,这个解决方案不工作:(我尝试过几种组合,例如$('。content')。find('input')。focus();将每个'submit'按钮集中到我的表单中。$ '(#line1')。focus();将正确聚焦,但只有当我显示第一个隐藏的div ...在第二个,第三个等等,line1不会被聚焦$('。line')。focus() ;将每个LAST输入字段集中在我的表单中......但是我无法让它专注于第一个字段,没办法:(我在这里做错了什么? – errata 2010-11-07 12:15:21