3

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

当我为某个字段输入新值时,我希望该文本字段的提交按钮能够自动获得焦点,以便能够简单地按 ENTER 来更新数据库。这是如何实现的?我认为简单的HTML必须是可能的。这是一段代码:

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>";
4

6 回答 6

7

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

    $('#mytextfield').change(function(e) {
        $('input[type=submit]').focus();
    });

或者你可以试试 jarry's

<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>

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

于 2012-04-10T03:49:41.993 回答
2

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

像这样的东西可以解决问题

<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 事件:

<input type="text" onchange="focusOnEnter()" /> 
<script type="text/javascript">
function focusOnEnter()
{
    document.getElementsByName('btnChangeAmountReceived')[0].focus();
}
</script>
于 2012-04-10T03:46:31.857 回答
0

您可以使用 input 元素的“tabindex”属性来完成您的要求,即简单的 html。

于 2012-04-10T03:43:11.143 回答
0

就像 Kinakuta 所说,我认为 JavaScript(jQuery) 会做得更好。这是一个链接,它解释了您需要的一切。http://jqueryminute.com/set-focus-to-the-next-input-field-with-jquery/

于 2012-04-10T03:48:40.467 回答
0
<script type="text/javascript">
function focusbutton() 
{
  if( event.keyCode == 13 )
  document.getElementById('BUTTON_ID').click();
}
</script>
于 2014-03-04T17:53:10.693 回答
0

试试这个

<script type="text/javascript">
function focusbutton() 
{
 if( event.keyCode == 13 )
 document.getElementById('BUTTON_ID').click();
}
</script>

13 : 输入的 ASCII 码

于 2014-03-04T17:58:35.117 回答