[英]Write inline javascript if statement onclick or any other JS event?
我需要在JS中使用if条件编写一个线性代码,如下所示:
onkeyup="javascript:if(event.keyCode ==13){myfunction(document.getElementById('xyz').value);}"
但是上面的代码对我不起作用。 如果我要创建一个函数,并使用与魅力类似的代码从onKeyUp
事件中调用它。
如果有人可以在这种情况下提供帮助,那就太好了。
试试这个
我已经添加了
function myfunction(x)
{
alert(x);
}
并且尚未更改onkeyup功能。 可能正在发生这样的情况,您的功能myfunction可能在主体下面声明。 只需将该代码包装在页面的<head>部分中即可 。 如果您要调用document.ready,则说明该函数没有找到DOM。
在此处检查jsFiddle http://jsfiddle.net/E5DK7/
在这里,您可以选择-如您所使用的嵌入式处理程序,或附加了addEventListener
处理程序-它们都可以在Chrome 34.0.1847.131 m中运行。
请注意,您的示例在嵌入式javascript中使用了硬编码的ID,而我介绍的另一个则没有。 我只给了第二个input
元素一个id,以便可以在onDocLoaded
定位它-也就是说, myFunction2
可以附加到任何元素,可以在键盘事件keyup
或keydown
触发
由于myFunction2
成为其附加元素的一部分,因此this
关键字引用触发元素本身。 如此,您可以使用javascript创建不带ID的输入元素,而myFunction2
仍会提供有意义的结果。 ( this
关键字是指触发元素,因此无需在事件处理程序的主体中定位任何单个元素-可以将单个功能附加到1个函数,而无需修改您喜欢的任何输入元素的keyup
/ keydown
事件)
<!DOCTYPE html>
<html>
<head>
<script>
function byId(e){return document.getElementById(e);}
window.addEventListener('load', onDocLoaded, false);
function onDocLoaded()
{
byId('abc').addEventListener('keyup', myFunction2, false);
}
function myFunction(input)
{
alert(input);
}
function myFunction2(evt)
{
if (evt.keyCode == 13)
myFunction( this.value );
}
</script>
<style>
</style>
</head>
<body>
<input id='xyz' onkeyup="if (event.keyCode == 13) { myFunction(byId('xyz').value); }"/>
<hr>
<input id='abc' />
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.