Autor Zpráva
TFSi
Profil
Ahoj,
chtěl bych k formuláři přidat možnost odeslání po stisknutí CTRL + S. Odchycení CTRL + S vcelku není problém, ale problém je, že se zároveň otevře dialog prohlížeče na uložení stránky.
Třeba v GMailu to mají nějak ošetřené, takže při psaní nové zprávy a stisku CTRL+S se dialog prohlížeče nezobrazí.
Mám tento kód:
var isCtrl = false;
document.onkeyup = function(e){
  if(e.which == 17) isCtrl=false;
}
document.onkeydown=function(e) {
  if(e.which == 17) isCtrl=true;
  if(e.which == 83 && isCtrl == true) {
    // kód provedený při CTRL + S
  } 
}

Neví někdo jak na to, aby to fungovalo?

Předem díky, T.
ShiraNai7
Profil
TFSi:
Vracej z těch funkcí false.
return false;

tj. "stisknutí nebylo", pak by to neměl prohlížeč brát
TFSi
Profil
Tak jsem asi něco vykoumal:
return false;

sice funguje, ale pouze pokud nikde nemám alert();
Když při kontrole formuláře vyhodím třeba:
alert('Špatně vyplněné pole "Jméno"!');
return false;

tak už se ukládací dialog zobrazí.

Tudíž musím předělat fci která kontroluje formulář a alerty nahradit něčím jiným...
... že mě to nenapadlo hned :|
ShiraNai7
Profil
TFSi:
Tudíž musím předělat fci

Dá se to obejít...

setTimeout(function(){
  nějaký kód...
  alert('bla bla');
  další kód...
},1);

return false;

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: