Witam,

Zassałem sobie skrypt z pewnej stronki, który zamienia mi pole select w combobox. Jest mi to bardzo potrzebne do mojej strony. Nie ukrywam, że jeśli chodzi o js to jestem zielony. Problem polega na tym, że kiedy przy edycji pola nacisnę backspace przeglądarka (FF) cofa mi się do poprzedniej strony. Co trzebazrobić, żeby ten backspace działał normalnie?

[JAVASCRIPT] pobierz, plaintext
  1. <LINK href="general.css" rel="stylesheet" type="text/css">
  2. <script LANGUAGE="JavaScript">
  3. <!-- Original: Cyanide_7 (leo7278@hotmail.com) -->
  4. <!-- Web Site: <a href="http://www7.ewebcity.com/cyanide7" target="_blank">http://www7.ewebcity.com/cyanide7</a> -->
  5.  
  6. var o = null;
  7. var isNN = (navigator.appName.indexOf("Netscape")!=-1);
  8. function beginEditing(menu) {
  9. finish();
  10. if(menu[menu.selectedIndex].value == "n") {
  11. o = new Object();
  12. o.editOption = menu[menu.selectedIndex];
  13. o.editOption.old = o.editOption.text;
  14. o.editOption.text = "_";
  15. menu.blur();
  16. window.focus();
  17. document.onkeypress = keyPressHandler;
  18. }
  19. function keyPressHandler(e){
  20. var option = o.editOption;
  21. var keyCode = (isNN) ? e.which : event.keyCode;
  22. if(keyCode == 8 || keyCode == 37)
  23. option.text = option.text.substring(0,option.text.length-2) + "_";
  24. else if (keyCode == 13) {
  25. finish();
  26. } else
  27. option.text = option.text.substring(0,option.text.length-1) + String.fromCharCode(keyCode) + "_";
  28. status = keyCode;
  29. }
  30. function finish() {
  31. if(o != null) {
  32. option = o.editOption;
  33. if(option.text.length > 1)
  34. option.text = option.text.substring(0,option.text.length-1);
  35. else
  36. option.text = option.old;
  37. document.onkeypress = null;
  38. o = null;
  39. }
  40. }
  41. }
  42.  
  43. </script>
[JAVASCRIPT] pobierz, plaintext


Już sobie poradziłem. Dla potomnych - należy dodać:

[JAVASCRIPT] pobierz, plaintext
  1. document.onkeydown = function(e)
  2. {
  3. k = e ? e.which : event.keyCode;
  4. if(k==8) return false;
  5. }
[JAVASCRIPT] pobierz, plaintext