Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 防止启动父脚本_Javascript_Jquery_Dotnetnuke - Fatal编程技术网

Javascript 防止启动父脚本

Javascript 防止启动父脚本,javascript,jquery,dotnetnuke,Javascript,Jquery,Dotnetnuke,我有一个DotNetNuke网站。下面的脚本烘焙到DNN代码中 <script type="text/javascript"> //<![CDATA[ function WebForm_OnSubmit() { dnn.controls.submitComp.onsubmit(); return true; } //]]> </script> 我使用onkeydown属性启动此函数: <input type="text" id="txt

我有一个DotNetNuke网站。下面的脚本烘焙到DNN代码中

<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
    dnn.controls.submitComp.onsubmit();
    return true;
}
//]]>
</script>
我使用onkeydown属性启动此函数:

<input type="text" id="txtblah" onkeydown="canISearch()" />

如何设置您的侦听器?您应该能够停止事件的传播,以防止其在事件层次结构中向上移动:

$(".element").keyup(function(e){
    e.stopPropagation();
});

你的听众是如何建立的?您应该能够停止事件的传播,以防止其在事件层次结构中向上移动:

$(".element").keyup(function(e){
    e.stopPropagation();
});

如果WebForm_OnSubmit位于全局空间中,您可以覆盖它并为您的案例创建异常。在定义了原始函数之后,重新定义它。也许是这样的:

(注:更新以纳入以下Samy回答中的信息)


如果WebForm_OnSubmit位于全局空间中,您可以覆盖它并为您的案例创建异常。在定义了原始函数之后,重新定义它。也许是这样的:

(注:更新以纳入以下Samy回答中的信息)

当您的函数出现在页面上时,您可以输入dnn代码以使该方法不执行任何操作:

dnn.controls.submitComp.onsubmit = function() {/*doing nothing, ladida*/};
这可能有点苛刻,因为你的修改会对其他行为产生影响。您可以添加一个方法,在相应地路由代码之前检查控件是否具有焦点。这很可能是最简单的黑客攻击

正如布伦南所建议的那样,你还可以防止事件的爆发;这实际上取决于事件是如何连接的。如果我没记错的话,DNN可以以很多方式侵入您的事件,这可能不容易做到

或者,您可以创建自己的外观,以控制推送到页面上的所有组件,并防止包装表单自动提交。

您可以使用dnn代码,以便在页面上显示函数时,该方法不执行任何操作:

dnn.controls.submitComp.onsubmit = function() {/*doing nothing, ladida*/};
这可能有点苛刻,因为你的修改会对其他行为产生影响。您可以添加一个方法,在相应地路由代码之前检查控件是否具有焦点。这很可能是最简单的黑客攻击

正如布伦南所建议的那样,你还可以防止事件的爆发;这实际上取决于事件是如何连接的。如果我没记错的话,DNN可以以很多方式侵入您的事件,这可能不容易做到



或者,您可以创建自己的外观,以控制推送到页面上的所有组件,并防止包装表单自动提交。

谢谢@Brennan,刚刚按照您的建议添加了代码,但结果仍然相同。请查看我的更新答案。谢谢@Brennan,刚刚添加了您推荐的代码,但结果仍然相同。请查看我的更新答案。是否希望每次使用enter按钮时都提交表单?如果没有,为什么不在表单字段处于焦点时提交它呢?谢谢@fgshepard问题是“Webform_OnSubmit()”函数中的脚本会侦听所有回车键。所以我可以在网页上,只需滚动内容,点击回车键,它就会启动-刷新页面。因此,我需要一种方法来防止该函数触发,或者如果用户在我的搜索文本框内,则至少忽略它。该函数是否在全局空间中,即。,在window.Webform_OnSubmit下可用?带有该函数的脚本标记位于标记的标题部分。是否希望每次使用enter按钮时都提交表单?如果没有,为什么不在表单字段处于焦点时提交它呢?谢谢@fgshepard问题是“Webform_OnSubmit()”函数中的脚本会侦听所有回车键。所以我可以在网页上,只需滚动内容,点击回车键,它就会启动-刷新页面。因此,我需要一种方法来防止该函数触发,或者如果用户在我的搜索文本框内,则至少忽略它。该函数是否在全局空间中,即在window.Webform_OnSubmit下可用?带有该函数的脚本标记位于标记的头部部分。从概念上讲,这是一个很棒的想法,和我想做的一样。。但它不起作用:(window.WebForm_OnSubmit正在返回undefined=-\是否可以链接到示例页面?下面samy的回答是否提供了针对此功能的正确方法?即,使用dnn.controls.submitComp.OnSubmit代替window.WebForm_OnSubmit?感谢@fgshepard的帮助,您的想法是正确的,非常成功。)st如何访问所讨论的函数,我无法理解。samy的想法能够解决这个问题,再次感谢!ewitkows如果您觉得多个答案都很有价值,您也可以对答案进行投票。老实说,我在回答时不理解fgshepard的想法,并且更多地考虑了javascript黑客:+1,因为我在r上这在概念上是一个很棒的想法,与我想做的一致……但它不起作用:(window.WebForm_OnSubmit正在返回undefined=-\是否可以链接到示例页面?下面samy的回答是否提供了针对此功能的正确方法?即,使用dnn.controls.submitComp.OnSubmit代替window.WebForm_OnSubmit?感谢@fgshepard的帮助,您的想法是正确的,非常成功。)st如何访问所讨论的函数,我无法理解。samy的想法能够解决这个问题,再次感谢!ewitkows如果您觉得多个答案都很有价值,您也可以对答案进行投票。老实说,我在回答时不理解fgshepard的想法,并且更多地考虑了javascript黑客:+1,因为我在r上虽然路由选项是我试图在上面概述的,但看起来您已经提供了访问该方法的正确方法。我建议您尝试一下。@ewitkows欣赏这种感觉,实际上将从另一个大陆分享;)路由选项是我试图在上面概述的,尽管看起来您已经提供了正确的方法