在html2canvas事件中将值设置为隐藏字段

时间:2014-10-20 07:58:14

标签: javascript jquery grails html2canvas

我在html2canvas onrendered事件中为hiddentfield设置值时遇到问题。

以下是我的代码段:

JS:

function saveCanvas()
{
    var data = null;
    html2canvas([document.getElementById('hidTest')],
    {
        onrendered: function(canvas)
        {
            data = canvas.toDataURL('image/png');
            alert(data);
            jQuery("input[name='hid']").val(data);
            alert(jQuery('#hid').val());
        }
    });
    alert(data);
}

HTML:

...
<g:hiddenField name="hid"/>
...

我注意到,onrendered事件之外的警报将首先触发。同样在onrendered事件中的警报(数据)中,我看到数据是corectly创建的,但它并没有分配给hiddenField(hid)和&#34; alert(jQuery(&#39; #hid&#39; ).VAL())&#34;向我显示我的hiddenField未定义。我将非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我找到解决方案。我觉得jQuery太慢了?纯js工作得很好:

而不是:

html2canvas([document.getElementById('hidTest')],
{
    onrendered: function(canvas)
    {
        data = canvas.toDataURL('image/png');
        jQuery("input[name='hid']").val(data);
    }
});

我用这个:

html2canvas([document.getElementById('hidTest')],
{
    onrendered: function(canvas)
    {
        var dataBind = document.getElementById('hid');
        data = canvas.toDataURL('image/png');
        dataBind.value = data;
    }
});

修改

这有点奇怪,但这样的事情也可以正常工作:

html2canvas([document.getElementById('hidTest')],
{
    onrendered: function(canvas)
    {
        jQuery("input[name='hid']").val(canvas.toDataURL('image/png'));
    }
});