繁体   English   中英

在输入类型=“文本”中按Enter键后如何调用JavaScript函数?

[英]How to call a JavaScript function after pressing Enter key in Input type=“text”?

我如何调用函数get() ,该函数将在用户按下Enter键后检索在文本框中键入的单词的含义?

我在下面添加我的代码,到目前为止没有任何效果; 请把您的更正添加到代码中,我知道代码太差了。

<script type="text/javascript" src="jquery.js"> </script>


<script type="text/javascript">

function get() {
$('#meaning').hide();
$.post('data.php', { name: form.wordfield.value }, 
function(output)   {

$('#meaning').html(output).fadeIn(1000);
});
}



</script>



</head>
<body>

<div id="container" style="width:100%">
<div id="header">

<ul>

<!--  <li><a href="#">Home</a> </li>-->
</ul>


</div>
<div id="logo" style="width: 10%; float:left; position:fixed; top:0px;                 z-index:-1;">         <img src="logo.gif"></img></div>
<p>
<div id="searchform">
<form name="form" >

<input type="text" name="wordfield" onKeyup="get();"><input type="button"    value="Translate" onClick="get();"> </form>
</div>
<div id="meaningbox">
</div>
<div id="meaning">

</div>
</p>
<div id="ad" style="width: 10%;float:right;"><!-- add section --></div>
<div id="footer">footer div goes here </div>
</div>
</body>
</html>

您必须在事件对象上使用键代码。 输入是13,因此请检查13。

<input type="text" id="MyInput" />

document.getElementById("MyInput").addEventListener( "keydown", function( e ) {
    var keyCode = e.keyCode || e.which;
    if ( keyCode === 13 ) {
       // enter pressed
       get();
    }
}, false);

好了,您可以将事件绑定到keydownkeypress事件,并测试按下了哪个键。

但这通常不是一个好主意。 按键事件可能由于其他原因而触发,例如用户从键盘IME中选择一个条目。

您真正想做的是模仿Enter键提交表单的行为。 为此,请实际创建一个表单,将输入内容放入其中,然后在表单上获取submit事件。 然后,您可以确保仅获得打算作为提交的Enter印刷机,而不必担心其他Enter印刷机(或shift-Enter或类似的东西),以及可以填写表格但没有填写的任何设备如果没有正常的输入按钮,仍然可以使用该页面。

<form id="lookup-form">
    <input id="lookup-field"/>
</form>

document.getElementById('lookup-form').onsubmit= function() {
    get(document.getElementById('lookup-field').value);
    return false;
};

(如果您有适当的责任心,可以将其指定为相关形式,并通过action指向执行查找的服务器端脚本进行操作,以便该功能适用​​于不使用JavaScript的用户代理。)

这对我有用:

$("#inputIDHERE").bind('keypress', function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
        get();
    }
});

我也在输入标签周围添加了<form> </ form>,尽管可能没有必要。

或者你用这个。 我认为这是最好的方法,因为使用控制台进行调试更容易。

<input id="lookup-field" onchange="name of the function"/>

基本上:

  1. 侦听keydownkeyupkeypress事件
  2. 事件对象将包含键码,测试其是否为Enter键
  3. 调用函数

由于浏览器处理事件绑定和键码的方式不同,因此几乎可以肯定,最好使用库来实现这一点。 例如,使用YUI 3及其键事件模块:

Y.one('#id_of_my_input').on('key', get, 'press:enter');

假设您使用的是jQuery JavaScript框架 ,则以下代码应正常工作:

$('#my_text_box').keypress(function(e) {
    if (e.which == 13) {
        get();
    }
});

13是Enter键的密码。

理想情况下,代码应成为document.ready设置的一部分。

您正在寻找jQuery的change事件。

$('#TextBox').change(function(e) {
    doSomethingWithString( this.val() );
})

有关按下按键和找到Enter键的建议也有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM