27. april 2001 - 15:40Der er
5 kommentarer og 1 løsning
Omskrive script
Er der een, der kan omskrive nedenstående script således at der ved tryk på ENTER fremkommer en alert() ???
Hvis det er muligt, må scriptet MEGET gerne skrives således at samtlige inputfelters navne ikke skal skrives ind i init() funktionen, men at der måske i stedet loopes gennem alle inputfelter automatisk....
<SCRIPT LANGUAGE=\"JavaScript1.2\"> <!-- ns4 = (document.layers)? true:false; ie4 = (document.all)? true:false; function kp(e) { if (ns4) {if (e.which==13) {document.f.pass.focus();}} if (ie4) {e=window.event; if (e.keyCode==13) {e.cancelBubble=true;e.keyCode=0;document.f.pass.focus();}} } function kp2(e) { if (ns4) {if (e.which==13) {document.f.submit();}} if (ie4) {e=window.event; if (e.keyCode==13) {document.f.submit();}} } function init() { document.f.navn.onkeypress=kp; document.f.pass.onkeypress=kp2; document.f.navn.focus(); }
function kp(e) { if (ns4) {if (e.which==13) {document.f.pass.focus();}} if (ie4) {e=window.event; if (e.keyCode==13) {e.cancelBubble=true;e.keyCode=0;document.f.pass.focus();}} };
function kp2(e) { if (ns4) {if (e.which==13) {document.f.submit(); alert(\"dette er Netscape og der er trykket enter (eller return)\"); } } if (ie4) {e=window.event; if (e.keyCode==13) {document.f.submit(); alert(\"dette er Explorer og der er trykket enter (eller return)\"); } } };
function init() { var felm = document.dit_form_navn.elements; for (var i=0; felm.length>i; i++ ) { if ( felm[i].type==\'text\' || felm[i].type==\'password\' ) { felm[i].onKeyPress=kp; felm[i].onKeyPress=kp2; // se kommentar. felm[i].focus(); } } };
//--> </SCRIPT>
og i din body kommando: <body ... onload=\"init()\">
kommentar: Det giver ingen mening at sætte onKeyPress eventhandleren 2 gange lige efter hinanden. kp bliver blot overskrevet af kp2. Funktionen kp vil aldrig blive kaldt.
function kp(e) { if (ns4) {if (e.which==13) {document.f.pass.focus(); alert(\"dette er Netscape og der er trykket enter (eller return)\"); } } if (ie4) {e=window.event; if (e.keyCode==13) { alert(\"dette er Explorer og der er trykket enter (eller return)\"); e.cancelBubble=true; e.keyCode=0;document.f.pass.focus(); } } return true; };
function kp2(e) { if (ns4) {if (e.which==13) {document.f.submit(); alert(\"dette er Netscape og der er trykket enter (eller return)\"); } } if (ie4) {e=window.event; if (e.keyCode==13) {document.f.submit(); alert(\"dette er Explorer og der er trykket enter (eller return)\"); } } };
function init() { var felm = document.f.elements; for (var i=0; felm.length>i; i++ ) { if ( felm[i].type==\'text\' || felm[i].type==\'password\' ) { felm[i].onKeyPress=kp; felm[i].focus(); } } };
//--> </SCRIPT>
og i din body kommando: <body ... onload=\"init()\">
Nedenstående kan jeg få til at fungere, men init() funktionen som automatisk skulle lave en onKeyPress for alle min form elementer kan jeg IKKE få til at fungere - og det ville selvfølgelig være dejligt. Så jeg ikke skal indsætte onKeyPress manuelt i alle felterne....
<html>
<head> <SCRIPT LANGUAGE=\"JavaScript1.2\"> ie4 = (document.all)? true:false; function kp(e) { if (ie4) {e=window.event; if (e.keyCode==13) { alert(\"dette er Explorer og der er trykket enter (eller return)\"); e.cancelBubble=true; e.keyCode=0; } } return true; }; </SCRIPT> </head>
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.