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

When setting onclick using Javascript, the onclick code is running

本文关键字:onclick 代码 运行 Javascript 设置      更新时间:2023-09-26

当点击一个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="事件在文件输入

上运行以下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>

谢谢

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

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