javascript - onpaste 不发送粘贴值

标签 javascript jquery html

我创建了一个输入字段并使用 onpaste 函数来触发表单提交。但它仅提交当前输入字段中的数据(如果有)而不是粘贴的数据。

我需要发送粘贴的数据。有什么建议我做错了什么吗?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
        </head>
    <body>
        <form action="textDataSubmittedGet/" method="get" id="MyForm">
            Your Data: <input type="text" onpaste="myFunction()" name="textData"><br>
        </form>
    <script>
        function myFunction() {
            $("#MyForm").trigger('submit');
        }
    </script>
    </body>
</html>

enter image description here

最佳答案

问题在于您在使用粘贴的内容更新输入值之前触发了表单。

您可以做的是在执行onpaste事件后执行一个函数。

为此,您可以使用 setTimeoutonpaste 之后的下一个执行堆栈上执行触发器

function myFunction() {
    setTimeout(function(){
        $("#MyForm").trigger('submit');
    }, 0 );
}

关于javascript - onpaste 不发送粘贴值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32632806/

相关文章:

javascript - 图像遮挡了我的可点击 div

javascript - jQuery toggleClass() 方法不适用于 JSON 生成的内容

javascript - jQuery 动态显示弹出窗口,无需静态 HTML 属性

jquery - Jqplot:动态获取标签和x轴刻度

html - CSS 中可以实现这种元素布局吗?以特定排列方式重叠具有透明度的形状

html - 如何制作一个只接受pdf和doc的文件字段

javascript - 如何从左侧而不是从顶部滑动导航栏?

javascript - 如何使用 jQuery 检查单选按钮?

IE 中的 jQuery DOM 操作内存泄漏

javascript - 使用 javascript 选中复选框时重置字段中的所有输入