JavaScript: prevenirea schimbării inputului de fișier la clic dacă utilizatorul anulează confirm()
Cum pot împiedica un element de intrare fișier dintr-un formular să se schimbe prin evenimentul onclick din DOM atunci când folosesc metoda confirm()?
În exemplu, vreau să ofer unui utilizator oportunitatea de a nu pierde valoarea unui element de input de tip fișier, întrebându-l dacă dorește Ok|anulare; dacă apasă anulare, fereastra de dialog pentru fișiere nu ar trebui să fie afișată.
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;
}
Răspuns #1
De ce să nu-l incluzi direct dacă ai un singur fișier de intrare?
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.');
}
exemplu jsFiddle.
Răspunsul #2
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();}
}
}
