Javascript JQuery:当焦点位于文本框中时,如何使用enter键提交href

Javascript JQuery:当焦点位于文本框中时,如何使用enter键提交href,javascript,jquery,python,html,Javascript,Jquery,Python,Html,我正在尝试使用jquery和flask来更改python脚本中的一些值,而不刷新页面。我只能在单击链接时提交,或在按enter键时选择链接 当焦点仅在不同的元素上(即我用来设置值的文本框,但不在页面上设置任何其他内容)时,是否可以通过“回车”键提交链接,而不创建单独的链接 HTML: 您可以使用标记的默认行为来实现这一点,并将您的操作绑定到提交事件 通过这种方式,您可以缩短代码,并且不会担心将来会添加一种新类型的输入,而您的脚本不支持这种输入 HTML <form id="my_form"

我正在尝试使用jquery和flask来更改python脚本中的一些值,而不刷新页面。我只能在单击链接时提交,或在按enter键时选择链接

当焦点仅在不同的元素上(即我用来设置值的文本框,但不在页面上设置任何其他内容)时,是否可以通过“回车”键提交链接,而不创建单独的链接

HTML:


您可以使用
标记的默认行为来实现这一点,并将您的操作绑定到提交事件

通过这种方式,您可以缩短代码,并且不会担心将来会添加一种新类型的输入,而您的脚本不支持这种输入

HTML

<form id="my_form">
   <h3>Change Value</h3>
   <p>New Value: <input type="text" size="5" name="entry"> <br>
     last entry: <span id="result">none</span> <br>
     <a href=# id="set_value">set value</a>
   </p>
</form>
就我个人而言,我更喜欢使用许多默认行为,因为它们不仅可以使代码保持简短,而且最终会更好地老化。随着web约定的发展,所有大量定制的东西都无法变得更好,而默认的东西将不断变化,并且随着时间的推移变得越来越易于使用和无bug

此外,对“可提交”的内容使用表单输入对用户来说更好,因为它将尊重他所选择的浏览器通常添加到表单中的任何特殊处理或特殊处理

<script type="text/javascript">
  $(function() {
    var submit_form = function(e) {
      $.getJSON($SCRIPT_ROOT + '/_set_beam', {
        q: $('input[name="entry"]').val()
      }, function(data) {
        $('#result').text(data.result[0]);
        $('input[name=q]').focus().select();
      });
      return false;
    };

    $('a#set_value').bind('click', submit_form);
    $('input[type=text]').bind('keydown', function(e) {
      if (e.keyCode == 13) {
        if ( $("set_value").is(":focus") ) {
          submit_form(e);
        }
        //elseif ( $("entry").is(":focus) ) {submit_form(e);}//something like this?
      }
    });
    $('input[name=q]').focus();
  });
</script>
@app.route('/_set_value')
def set_value():
    """set a new value"""
    entry = request.args.get('entry', default='nothing', type=str)
    if entry == 'something':
        result = doSomething(entry):
    else:
        result = doSomethingEelse(entry)
    return jsonify( result=[entry] )
<form id="my_form">
   <h3>Change Value</h3>
   <p>New Value: <input type="text" size="5" name="entry"> <br>
     last entry: <span id="result">none</span> <br>
     <a href=# id="set_value">set value</a>
   </p>
</form>
$('my_form').submit( function(e) { // submit handler
      $.getJSON($SCRIPT_ROOT + '/_set_beam', {
        q: $('input[name="entry"]').val()
      }, function(data) {
        $('#result').text(data.result[0]);
        $('input[name=q]').focus().select();
      });
});