<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <script src="../../xsloader.js" data-xsloader-conf2="./xsloader.config" async="async" type="text/javascript" charset="utf-8"></script> <script src="libs/modernizr.js"></script><!--引入文件--> <style> input { padding: .5em; margin: .5em; } #signatureparent { color: #000; background-color: #fff; padding: 10px; } #signature { border: 1px dotted #3eaed2; background-color: #ececec; width: 100%; } #signResult { width: 300px; height: 300px; } </style> </head> <body style="background-color: #fff;"> <div id="content" style="width: 100%;padding-top: 15px;"> <center style="font-size: 1.2em;">请在虚线框内签名,完毕后点击 保存 按钮。</center> <div id="signatureparent"> <div id="signature"></div> //这是要显示写字板的容器 </div> <div style="text-align: center;"> <input type="button" name="btnReset" id="btnReset" value="重写" /> <input type="submit" class="" name="btnSave" id="btnSave" value="保存签名" /> </div> </div> <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script><!--引入Jq文件,必须在noconflict.js文件之前引入-->
<script src="libs/jSignature.min.noconflict.js"></script> </body> </html>
以下是js文件:
var that = this; var option = { isRevoke: false,//是否有撤销按钮 color: "red" //画笔颜色 } var strokesCount = 0; //笔画数,为了记录是否有签名,如果为0,表示没有签名就提交,拒绝提交 var $sigdiv = handSign(option); function handSign(obj) { //isRevoke:是否有撤销按钮;color:画笔颜色 var $signadiv = $(signature).jSignature({ ‘UndoButton‘: obj.isRevoke, "color": obj.color }), //实例化一个画板 pubsubprefix = ‘jSignature.demo.‘ $signadiv.on(‘change‘, function(e) { strokesCount++; //监听画板,记录笔画数 }) return $signadiv; /*$(signature).jSignature({option})参数设置 * option = { width : ratio 定义画布的宽度。数值没有%或px height : ratio 定义画布的高度。数值没有%或px sizeRatio: 4 // only used when height = ratio color : #000 定义了中风在画布上的颜色。接受任何颜色的十六进制值 background-color: #fff 定义了画布的背景颜色。接受任何颜色的十六进制值。 decor-color: #eee lineWidth : 0 定义的厚度。接受任何积极的数值 minFatFingerCompensation : -10 showUndoButton: false readOnly: false data: [] signatureLine: false }*/ } $("#btnSave").on("click", function() { if(strokesCount > 0) { //可选格式:native,image,base30,image/jsignature;base30,svg,image/svg+xml,svgbase64,image/svg+xml;base64 var basedata = $sigdiv.jSignature(‘getData‘, "image"); //获取图片数据,前面不加入data: 直接存入数据库,读取的时候,可以再加 sdk.xsRequest({ //发送异步请求,将图片进行上传,这里使用的是公司分装的,用原生的ajax自行百度 method: "post", url: lconfig.fromPath("HandSign/saveHandSignImage"), params: { "jsdata": basedata[1], "vid": "abd", "vtid": "abcd" } }).then(function(json) { return json; }) } else { sdk.showToast("请签名后再保存") //监听是否有写过,如果没有写过则不予以上传,这里使用公司的弹窗sdk, } }); $("#btnReset").on("click", function() { $sigdiv.jSignature(‘reset‘); //重置 strokesCount = 0;//重置过后将笔画数也清楚0 });
原文:https://www.cnblogs.com/oushiyou/p/10400447.html