Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 使用JQuery在DOM中捕获鼠标点击? 背景_Javascript_Jquery_Dom_Mouse - Fatal编程技术网

Javascript 使用JQuery在DOM中捕获鼠标点击? 背景

Javascript 使用JQuery在DOM中捕获鼠标点击? 背景,javascript,jquery,dom,mouse,Javascript,Jquery,Dom,Mouse,我在Web应用程序中使用POST表单提交,而不是带有串联参数的链接,因此我可以对输入进行控制 不幸的是,这意味着用户不能使用他们知道的快捷方式在新窗口中打开链接,如控制点或中键单击 问题 我已经找到了一种使用jQuery捕捉鼠标输入和各种和弦键的可行方法,它基于: $(“点击span”)。点击(功能(事件){ buttonpress=event.button; ctrlpress=event.ctrlKey; $(“#单击结果”).empty(); $(“#单击结果”)。追加(单击!”; $(“

我在Web应用程序中使用POST表单提交,而不是带有串联参数的链接,因此我可以对输入进行控制

不幸的是,这意味着用户不能使用他们知道的快捷方式在新窗口中打开链接,如控制点或中键单击

问题 我已经找到了一种使用jQuery捕捉鼠标输入和各种和弦键的可行方法,它基于:

$(“点击span”)。点击(功能(事件){
buttonpress=event.button;
ctrlpress=event.ctrlKey;
$(“#单击结果”).empty();
$(“#单击结果”)。追加(单击!

”; $(“#单击结果”)。追加(“按钮#”+按钮按+”按!

”; 如果(ctrlpress){ $(“#点击结果”)。追加(控制点击!

”; } //表单提交代码将显示在此处 event.preventDefault(); } );
我可以通过这种方式捕获控件单击(在Firefox 3和IE7中进行了测试),它正确地(?)报告鼠标左键单击来自鼠标按钮#0,但由于某些原因,此代码仍然无法捕获跨距上的中间单击,右键单击仍然会弹出上下文菜单。至少我想捕捉中间的点击

有人能帮忙吗

“控制”是什么意思 带有串联参数的GET提交/链接的问题在于,任何人都可以编辑地址栏并键入任何内容。我已经担心服务器端的身份验证和验证。这不是我想和波斯特共事的原因

我应该只向用户显示有意义的信息。内部数据库ID不可用。我应该只让用户以有意义的方式与应用程序交互。任意编辑地址栏不是其中之一


人们总是打错字。不过,从系统的角度来看,地址栏中的输入错误和应用程序逻辑中的缺陷没有区别,我不想把决定哪一个错误的责任推给用户。

简短回答?不行

答案很长。还是做不到

这就引出了一个问题:你是需要使用POST还是仅仅想使用POST?您需要查询字符串长度的唯一原因是。至于想要,你提到“控制用户输入”。这到底是什么意思

您永远不应该依赖浏览器进行输入验证。您可以在那里方便地进行验证,但服务器应该始终验证输入

或者原因是审美(即更短,“更好”的URL)


你正在重塑超链接的轮子。我只是想确保你有一个非常好的理由这样做,因为这样做会适得其反,而且你永远不会得到与实际超链接相同的浏览器支持和兼容性。另外,你很可能只是让用户期望的东西不起作用而惹恼他们。不太好。

细说也无妨。
 $("span#clickspan").click( function(event) {

   buttonpress = event.button;
   ctrlpress = event.ctrlKey;

    $("#clickresult").empty();
    $("#clickresult").append("<p>Click!</p>");
    $("#clickresult").append("<p>Button # " + buttonpress + " pressed!</p>");
    if (ctrlpress) {
        $("#clickresult").append("<p>Control-click!</p>");
    }

    //form submission code would go here

    event.preventDefault();

    }
 );