繁体   English   中英

编写内联JavaScript if语句onclick或任何其他JS事件?

[英]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可以附加到任何元素,可以在键盘事件keyupkeydown触发

由于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.

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