JavaScript:如果用户取消confirm(),文件输入onclick将阻止更改

JavaScript: file input onclick prevent change if user cancels confirm()

本文关键字:onclick 输入 文件 用户 如果 取消 confirm JavaScript      更新时间:2023-09-26

使用confirm()方法时,如何防止表单文件输入元素通过onclick DOM事件更改?

例如,我想让用户有机会不丢失文件输入元素的值,询问他们是否希望确定|取消,如果他们单击取消,则不应显示文件对话框窗口。

XHTML

<input name="post_file" onclick="images_change();" type="file" value="" />

JavaScript

function images_change()
{
 var answer = confirm('Okay or cancel, if you cancel no dialog window will be displayed.');
 if (answer)
 {
  answer = true;
  //previous item previews deleted here in a while loop.
 }
 else {answer = false;}
 return answer;
}

如果您有一个文件输入,为什么不直接内联它?

HTML:

<input name="post_file" onclick="return check()" type="file" value="" />​

JavaScript:

function check() {
    return confirm('Okay or cancel, if you cancel no dialog window will be displayed.');
}​

jsFiddle示例

document.getElementById('post_file').addEventListener('click',function(e) {images_click(e);},false);
function images_click(e)
{
  var answer = confirm('Ok or cancel?');
  if (answer)
  {
   //shows file selection dialog window.
  }
  else {e.preventDefault();}
 }
}

您需要返回confirm结果,并返回函数结果:

<input name="post_file" onclick=" return images_change();" type="file" value="" />​
function images_change() {
    return confirm('Okay or cancel, if you cancel no dialog window will be displayed.');
}

现场演示