输入键将无法用作按钮

时间:2018-09-23 19:25:39

标签: javascript html

我已经尝试了所有代码,但是当我单击<i>或单击Enter时,还没有弄清楚如何编写代码。我真的需要帮助谢谢!

$('#update').click(function upd() {
	loadChannel($('#chnlname').val());
});

var input = document.getElementById("chnlname");

input.addEventListener("keyup", function(event) {
  	if (event.keyCode === 13) {
    loadChannel($('#chnlname').val());
  	}
});
<html>
  <head>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  </head>
  <body>
    <div class="Search1">
		  <div class="inputWithIcon">
			  <input type="text" placeholder="Channel ID" id="chnlname" class="Input2"></input>
				<i class="fa fa-search" aria-hidden="true" id="update" onclick="upd()"></i>
		  </div>
		</div>
   </body>

2 个答案:

答案 0 :(得分:1)

1-在文档准备方法中添加您的js代码 2-无需在html代码中指定$ click处理程序,$('#update')。click就足够了。

完整代码:https://codepen.io/peker-ercan/pen/xaemMr

js;

$(document).ready(function () {

        $('#update').click(function upd() {
            loadChannel($('#chnlname').val());
        });
        function loadChannel() {
            console.log("loading channel");
        }
        var input = document.getElementById("chnlname");

        input.addEventListener("keyup", function (event) {
            if (event.keyCode === 13) {
                loadChannel($('#chnlname').val());
            }
        });
    });

html:

 <div class="Search1">
    <div class="inputWithIcon">
        <input type="text" placeholder="Channel ID" id="chnlname" class="Input2"></input>
        <i class="fa fa-search" aria-hidden="true" id="update"></i>
    </div>
</div>

答案 1 :(得分:0)

1)确保定义了click函数,并且在加载DOM时可以访问。您的函数upd(){}似乎在全局上下文中不可用。尽管它没有遵循最佳实践,但是您可以通过将click函数绑定到window对象来完成此操作。 参见小提琴:https://jsfiddle.net/js03rq2b/42/

2)您已经通过onclick="upd()"在HTML中调用了<button>,同时还尝试在JavaScript中添加事件监听器。使用以下方法之一,但不能同时使用。

3)另外,如果将点击处理程序绑定到<i>标记而不是void append(char* s, char c) { int len = strlen(s); s[len] = c; s[len+1] = '\0'; } int main(void){ char str[] = "program example(input, output);"; char *f = str; char *b = str; char token[10]; if(*f != '\0'){ while (*f != ' ') { append(token,*f); f++; } f++; printf("%s",token); token[9] = '\0'; } return 0; } 标记,它将同样响应空格键和ENTER键。只要有可能,请使用语义标记来利用默认的浏览器行为。

希望有帮助。