JavaScript: ввод файла по клику, запретить изменение, если пользователь отменяет подтверждение () - PullRequest
4 голосов
/ 03 апреля 2012

Как предотвратить изменение элемента ввода файла формы при помощи события DOM onclick при использовании метода verify ()?

Например, я хочу дать пользователю возможность не терять значениеэлемент ввода файла, спрашивая их, хотят ли они OK | отменить, если они нажимают кнопку отмены, диалоговое окно файла не должно отображаться.

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;
}

Ответы [ 3 ]

3 голосов
/ 03 апреля 2012

Почему бы просто не встроить его, если у вас есть один ввод файла?

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 .

2 голосов
/ 04 апреля 2012
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();}
 }
}
0 голосов
/ 03 апреля 2012

Вам необходимо вернуть результат 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.');
}

LIVE DEMO

...