使用Javascript设置onclick时,onclick代码正在运行

时间:2013-01-06 13:45:38

标签: javascript

当点击Div时,它应该更改div中的文本(使用innerHTML完成),但我也想更改div的onclick函数

这是我的JS代码

document.getElementById('select_image').onclick = document.upload.submit();

点击div时,不是点击隐藏文件上传div(之前就是这样做),而是立即提交表单

如果我按回浏览器,它会显示带有更新文本的div

由于

编辑:看起来不太清楚

我有一个div(select_image),当点击它时,它在隐藏的输入文件元素上使用JS(.click),因此您可以选择一个文件。

这个div正在使用onclick =" function()"运行一个更改该div中文本的函数,我还希望它更改onclick事件,以便在选择文件时实际提交表单(而不是单击隐藏文件输入)。

我正在使用onchange ="" event在文件输入上运行以下JS函数

function selected_image(image) {
    document.getElementById('select_image').innerHTML = 'click here to upload <span id="selected">' + image.replace('C:\\fakepath\\', '') + '</span>';
    document.getElementById('select_image').onclick = document.upload.submit();
}

<div id="select_image" onclick="document.forms['upload'].elements['image'].click();">click here to select your image</div>

由于

1 个答案:

答案 0 :(得分:0)

submit();中的括号会立即执行该函数。现在,您尝试将返回值从submit分配给onclick属性。一个有效的解决方案是使用匿名函数来处理事件。

document.getElementById('select_image').onclick = function () {
    document.upload.submit();
    return;
}