首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >html表单-按enter时自动获得按钮焦点

html表单-按enter时自动获得按钮焦点
EN

Stack Overflow用户
提问于 2012-04-10 03:30:56
回答 6查看 8.4K关注 0票数 3

我正在构建一个表,我想从该表中更新数据库的不同字段。输出当前值,然后是提交按钮和用于输入新值的文本字段。

当我为某个字段输入新值时,我希望此文本域的submit按钮自动获得焦点,这样只需按ENTER键即可更新数据库。这是如何实现的?我认为使用简单的HTML一定可以做到这一点。下面是一段代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo "
<form method='post'>
    <table>
        <tr>
            <th>Amount to receive</th>
            <td>" . mysql_result($result, 0, "amountToReceive") . "</td>" . "
            <td><input type='submit' value='Change' name='btnChangeAmountToReceive'> <input type='text' name='txtChangeAmountToReceive'></td>
        </tr><tr>
            <th>Amount received</th>
            <td>" . mysql_result($result, 0, "amountReceived") . "</td>" . "
            <td><input type='submit' value='Change' name='btnChangeAmountReceived'> <input type='text' name='txtChangeAmountReceived'></td>
        </tr>
    </table>
</form>";
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-04-10 03:49:42

实现这一点的方法是使用javascript,我建议您使用jQuery。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    $('#mytextfield').change(function(e) {
        $('input[type=submit]').focus();
    });

或者你可以试试jarry的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="text" onkeypress="return focusOnEnter(event)" /> 
<script type="text/javascript">
function focusOnEnter(e)
{
var keynum = e.keyCode || e.which;  //for compatibility with IE < 9
if(keycode == 13) //13 is the enter char code
    document.getElementsByName('btnChangeAmountReceived')[0].focus();
return true;
}
</script>

还可以通过添加属性autofocus="autofocus"来自动聚焦HTML5上的元素

票数 7
EN

Stack Overflow用户

发布于 2012-04-10 03:46:32

正如kinakuta所说,你必须使用一些javascript来做你想做的事情。

像这样的事情就能解决这个问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="text" onkeypress="return focusOnEnter(event)" /> 
<script type="text/javascript">
function focusOnEnter(e)
{
var keynum = e.keyCode || e.which;  //for compatibility with IE < 9
if(keycode == 13) //13 is the enter char code
    document.getElementsByName('btnChangeAmountReceived')[0].focus();
return true;
}
</script>

编辑

读完Frank S的答案后,我认为更好的解决方案是使用onchange事件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<input type="text" onchange="focusOnEnter()" /> 
<script type="text/javascript">
function focusOnEnter()
{
    document.getElementsByName('btnChangeAmountReceived')[0].focus();
}
</script>
票数 2
EN

Stack Overflow用户

发布于 2012-04-10 03:43:11

您可以使用input元素的'tabindex‘属性来完成您的要求,这是简单的html。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10082783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文