表单不会在innerHTML中提交

时间:2013-10-20 17:56:25

标签: javascript innerhtml

我正在尝试使用innerHTML中的javascript提交表单,并且提交按钮不起作用。如何使用innerHTML提交表单?当它在体内时,它可以很好地工作,但我需要它在函数中,因为我需要picdata数据[1]。

function photoShowcase(picdata){
    var data = picdata.split("|");
    _("picbox").style.display = "block";
    _("picbox").innerHTML += '<div id="contain" style="background: url(\'user/<?php echo $u; ?>/'+data[1]+'\') center no-repeat rgba(0,0,0,.8);">';
    if("<?php echo $isOwner ?>" == "yes"){
        _("picbox").innerHTML += '<div id="deletelink">';
        _("picbox").innerHTML += '<form method="POST" action="php_parsers/change_image.php" name="ChangeImage">';
        _("picbox").innerHTML += '<input type="hidden" value="'+data[1]+'" name="file_name" />';
        _("picbox").innerHTML += '<input type="submit" value="Set as Profile Picture" name="SetImage" />';
        _("picbox").innerHTML += '</form>';
        _("picbox").innerHTML += '<a href="#" onclick="return false;" onmousedown="deletePhoto(\''+data[0]+'\')">Delete Photo</a>';
        _("picbox").innerHTML += '</div>';
    }
    _("picbox").innerHTML += '</div>';
}

2 个答案:

答案 0 :(得分:0)

有一些观点:
1 /您的PHP代码在哪里?
2 /你在哪里调用这个函数?这里是没有任何调用的函数...你必须用正确的参数调用函数才能工作。
3 /您使用((+ =))作为第一个innerHTML ......?这是为什么???你以前用过这个命令吗?

我认为你的回答是在这3点。

要获得更多帮助,请制作一个jsfiddle ......

答案 1 :(得分:0)

在您的代码中,您插入了不完整的html片段,这很可能会导致问题。

我建议将innerHTML存储在变量中,只有在包含所有必需的结束标记后才将其附加到文档中:

var htmlString = '<div id="contain" style="background: url(\'user/<?php echo $u; ?>/'+data[1]+'\') center no-repeat rgba(0,0,0,.8);">';
//...
_("picbox").innerHTML += htmlString;