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

使用Javascript设置onclick时,onclick代码正在运行,javascript,Javascript,单击Div时,应该更改Div中的文本(使用innerHTML完成),但我还想更改Div的onclick函数 这是我的JS代码 document.getElementById('select_image').onclick = document.upload.submit(); 当单击div时,它不是单击hide file upload div(它以前是这样做的),而是直接提交表单 如果我在浏览器上按back,它将显示带有更新文本的div 谢谢 编辑:看起来不太清楚 我有一个div(select

单击Div时,应该更改Div中的文本(使用innerHTML完成),但我还想更改Div的onclick函数

这是我的JS代码

document.getElementById('select_image').onclick = document.upload.submit();
当单击div时,它不是单击hide file upload div(它以前是这样做的),而是直接提交表单

如果我在浏览器上按back,它将显示带有更新文本的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>
所选函数\u图像(图像){
document.getElementById('select_image')。innerHTML='单击此处上载'+image.replace('C:\\fakepath\\','')+'';
document.getElementById('select_image')。onclick=document.upload.submit();
}
单击此处选择您的图像

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

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

提供一个无法解决的问题示例。当执行
onclick
时,
将是选择图像,而不是
上传
,因此提交将尝试提交无法提交的内容。