Javascript 我忽略了什么?当我用鼠标签名时,数据上传,但当我用触摸签名时,数据赢了;t上传

Javascript 我忽略了什么?当我用鼠标签名时,数据上传,但当我用触摸签名时,数据赢了;t上传,javascript,php,html,css,touch,Javascript,Php,Html,Css,Touch,我遇到了一个问题,我只遇到另一个人有同样的问题,但他们仍然迷路。 我正在使用szimek的签名板,当我用鼠标或轨迹板签名时,图像数据上传到我的/upload文件夹。但当我在任何浏览器的任何触摸屏(ipad、iphone、android、我的microsoft pc的触摸屏)上用手指签名时,都会导致数据无法上传到我的/upload文件夹。或者任何地方 Html: 员工姓名: 签名: 清楚的 用于处理签名的PHP: $signature1 = $_POST['signature1']; $en

我遇到了一个问题,我只遇到另一个人有同样的问题,但他们仍然迷路。 我正在使用szimek的签名板,当我用鼠标或轨迹板签名时,图像数据上传到我的/upload文件夹。但当我在任何浏览器的任何触摸屏(ipad、iphone、android、我的microsoft pc的触摸屏)上用手指签名时,都会导致数据无法上传到我的/upload文件夹。或者任何地方

Html:

员工姓名:
签名:
清楚的


用于处理签名的PHP:

$signature1 = $_POST['signature1'];
$encoded_image1 = explode(",", $signature1)[1];

$decoded_image1 = base64_decode($encoded_image1);
$sig1_new_name = uniqid('', true) . '.png';
file_put_contents('uploads/' . $sig1_new_name, $decoded_image1);

$message .= "<div><h3>Signature: </h3><div><img src='http://site/uploads/" .$sig1_new_name. "' width='300' height='150'><br>$employee1</div></div><hr>";
$signature1=$\u POST['signature1'];
$encoded_image1=分解(“,”,$signature1)[1];
$decoded_image1=base64_decode($encoded_image1);
$sig1_new_name=uniqid(“”,true)。”。巴布亚新几内亚';
文件内容('uploads/'。$sig1\u new\u name,$decoded\u image1);
$message.=“签名:
$employee1
”;
我正在使用szimek的javascript来实现:

这是:


我快死了。我一定忽略了javascript中的一些东西,但似乎没有其他人有这个问题,所以可能是在我的js实现中。任何帮助都将不胜感激!谢谢。

您可能会遇到这样的问题:
mouseup
通常需要触发实际的鼠标。您希望用于触摸输入的事件是;这一点已在本文中作了进一步讨论。你的小提琴会变成:

var wrapper1=document.getElementById(“signature-pad-1”),
canvas1=wrapper1.querySelector(“canvas”),
签名a 1;
var siginput1=document.getElementById(“siginput1”)
函数处理程序(事件){
if(signaturePad1.isEmpty()){
siginput1.value='';
} 
否则{
siginput1.value=signaturePad1.toDataURL('image/png');
}
});
canvas1.addEventListener(“mouseup”,handler);
canvas1.addEventListener(“touchend”,handler);
函数clear1(){signaturePad1.clear();}
函数大小调整画布(画布){
var比率=window.devicePixelRatio | | 1;
画布宽度=250;
帆布高度=150;
}
调整画布大小(画布1);
signaturePad1=新的SignaturePad(canvas1);
$(“#clear1”)。单击(clear1);

我一点也不确定,但我认为javascript中的mouseup事件不适用于触摸设备,您可以添加touchend事件。这个应该可以在触摸设备上使用。
希望我能帮忙,祝你好运:)

我看不到用户发布表单的任何方法。我会检查你的JavaScript在手机上是否正常工作。哇,gyre比我快。这正是问题所在。也非常感谢你!伙计,我爱你。这正是问题所在。非常感谢你。我一整天都在为这件事紧张。我对javascript非常陌生,所以这非常有用。再次感谢你!
$signature1 = $_POST['signature1'];
$encoded_image1 = explode(",", $signature1)[1];

$decoded_image1 = base64_decode($encoded_image1);
$sig1_new_name = uniqid('', true) . '.png';
file_put_contents('uploads/' . $sig1_new_name, $decoded_image1);

$message .= "<div><h3>Signature: </h3><div><img src='http://site/uploads/" .$sig1_new_name. "' width='300' height='150'><br>$employee1</div></div><hr>";