Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按钮onclick函数在jquery中无法正常工作_Javascript_Jquery_Asp.net - Fatal编程技术网

Javascript 按钮onclick函数在jquery中无法正常工作

Javascript 按钮onclick函数在jquery中无法正常工作,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我正在尝试使用asp.net mvc应用程序中的button onclick事件执行外部函数。但是有些人认为它不能正常工作,我无法理解是什么原因 <input type="button" id="123" onclick="alert('123')" value="Button 1" /> <input type="button" id="124" value="Button 2" /> <input type="button" id="125" onclic

我正在尝试使用asp.net mvc应用程序中的button onclick事件执行外部函数。但是有些人认为它不能正常工作,我无法理解是什么原因

<input type="button" id="123" onclick="alert('123')" value="Button 1" />
 <input type="button" id="124" value="Button 2"  />
 <input type="button" id="125" onclick="Show_id();" value="Button 3" />
 <input type="button" id="126" value="Button 4" />

这里是JQuery代码

<script type="text/javascript">
$(document).ready(function () {
    $("124").click(function () {
        alert(this.id);

    })

    function Show_id() {
        alert(this.id);
    }
    $("126").click(function () {
        alert("message");

    })


})

$(文档).ready(函数(){
$(“124”)。单击(函数(){
警报(this.id);
})
函数Show_id(){
警报(this.id);
}
$(“126”)。单击(函数(){
警报(“信息”);
})
})

单击按钮1后,它可以正常工作。但剩余的3个字节不工作。

$(文档).ready(函数(){
$(“#124”)。单击(函数(){
警报(124);
})
函数Show_id(e){
警报(e.type);
}
$(“#126”)。单击(函数(){
警报(“信息”);
})
})

我在这里发布了一个JSFIDLE。


$(文档).ready(函数(){
$(“#124”)。单击(函数(){
控制台日志('124');
});
$(“#126”)。单击(函数(){
警报(“信息”);
});
});
//注意上面ready()的外部。我在这里也使用window.xyz,因为默认情况下JSFIDLE加载到“load”范围,所以我附加到窗口。无论哪种方式,这通常都是不好的做法,请避免内联单击函数调用。
window.Show_id=函数(){
警报(event.target.id);
}
  • 你失踪了#

  • 您的show\u id位于不同的作用域中(其位于document.ready中)

  • 不要调用内联onclick事件:)这是错误的做法。使用jQuery,就像使用#126钩住一个一样

  • 另外,永远不要允许将用户输入添加到oncliick=“somethingFromTheUser”,因为他们可以轻松地将javascript注入到您可能无法预料的地方(有太多的攻击向量,不必担心添加它,只是不要这样做)


  • 当您在jquery代码中以124为目标时,需要执行$('#124')来指示您的目标是IDoh!不小的错误是的,先生,我错了,忘了放符号,谢谢你的第四点。这对我真的很有帮助,我记得。当然,如果有帮助,请接受答案。谢谢另外,我建议任何web开发人员观看一些安全课程,查看owasp前10名作为一个良好的起点。
    <input type="button" id="123" onclick="alert('123')" value="Button 1" />
    <input type="button" id="124" value="Button 2"  />
    <input type="button" id="125" onclick="Show_id()" value="Button 3" />
    <input type="button" id="126" value="Button 4" />
    
    $(document).ready(function () {
        $("#124").click(function () {
            console.log('124');
        });
    
        $("#126").click(function () {
            alert("message");
        });
    
    });
    
    //Note its outside of ready() above. Also I use window.xyz here because of jsfiddle loading into 'load' scope by default, so im attaching to window. This is generally bad practice either way, avoid inline click function calls.
    window.Show_id = function() {
         alert(event.target.id);
    }