我创建了一个输入字段并使用 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>
最佳答案
问题在于您在使用粘贴的内容更新输入值之前触发了表单。
您可以做的是在执行onpaste
事件后执行一个函数。
为此,您可以使用 setTimeout
在 onpaste
之后的下一个执行堆栈上执行触发器
function myFunction() {
setTimeout(function(){
$("#MyForm").trigger('submit');
}, 0 );
}
关于javascript - onpaste 不发送粘贴值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32632806/