Javascript在另一个无法在移动设备上运行的字段中设置隐藏字段值

时间:2017-01-01 23:05:59

标签: javascript jquery

我有一个隐藏字段,它应该从div获取字符串值,并且在浏览器中工作时一切正常,但是当我在平板电脑或智能手机上运行它时它不起作用。我不懂。

这是我的div和隐藏字段:

div id="signature-div" style="border: dotted 2px grey;">
    <div id="canvas"></div>
</div>

<input name="signature" type="hidden" id="signature" value="">

和功能:

$(document).ready(function() {

    // signature
    var W = $("#signature-div").width();
    var sigCanvas = $("#canvas").jSignature({width: W, height: 180, "background-color":"#ddd"});

    // after signing the offer set hidden field value to signature
    $(document).on('mouseup', '#canvas',function(){
    //$("form").submit(function() {
        var rawSig = $("#canvas").jSignature("getData","svg");
        //$("#img").attr("data", 'data:' + rawSig);

        //$("#signature").val('data:' + rawSig);
        document.getElementById("signature").value = 'data:' + rawSig;

        // i have tried both of these up and it doesn't set the hidden value on mobile devices...is there something i'm missing here?

    });

});

2 个答案:

答案 0 :(得分:1)

你做你的&#34;得到字符串值&#34;在mouseup ...

平板电脑和智能手机没有鼠标 尝试将touchend事件添加到您的脚本中......就像这样:

$(document).on('mouseup touchend', '#canvas',function(){

同时检查其他touch events ;)

答案 1 :(得分:1)

没有鼠标的设备永远不会触发“鼠标”。事件

添加&#39; touchend&#39;事件也是:

$(document).on('mouseup touchend', '#canvas',function(){
...