HighDots Forums  

script unter FF und IE

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss script unter FF und IE in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Stephan Dreisbach
 
Posts: n/a

Default script unter FF und IE - 01-04-2008 , 07:04 AM






Hallo,
ein Javascript soll alle Zellen einer Tabelle kontrollierenund den
Fokus ggf in die nächste Zelle setzen. In TEXTFELD
stehen die Zeile und Spalte in der Form x-y.
<script type=javascript>
function nurZiffern(TEXTFELD) {
var ZEICHEN=Kaestchen.elements[TEXTFELD].value;
var K_ARRAY = TEXTFELD.split('-');
var ZEILE=K_ARRAY[0]; var SPALTE=K_ARRAY[1];
var maxSPALTE=20; var maxZEILE=10;
if (isNaN(ZEICHEN) && ZEICHEN!='+' && ZEICHEN!='-' && ZEICHEN!='*'
&& ZEICHEN!=':' && ZEICHEN!='=') {
Kaestchen.elements[TEXTFELD].value='';
}
else {
SPALTE=parseInt(SPALTE); ZEILE=parseInt(ZEILE);
SPALTE=SPALTE+1;
if (SPALTE >= maxSPALTE) {
ZEILE=ZEILE+1; SPALTE=0;
if (ZEILE >= maxZEILE) {
ZEILE=0;
}
}
TEXTFELD=ZEILE+'-'+SPALTE;
Kaestchen.elements[TEXTFELD].focus();
}
}
</script>

Unter FF funktioniert es einwandfei, unter Opera werden alle Zellen
gelöscht, wenn ein Buchstabe eingegeben wird und unter IE gehts gar
nicht. Warum?
--
Stephan

Reply With Quote
  #2  
Old   
Stephan Dreisbach
 
Posts: n/a

Default Re: script unter FF und IE - 01-04-2008 , 07:42 AM






Stephan Dreisbach <muelleimer15 (AT) gmx (DOT) de> schrieb:


Quote:
Unter FF funktioniert es einwandfei,
Nachtrag: Unter FF funktioniert es auch nicht mehr, wenn die Seite als
PopUp aufgerufen wird.


Reply With Quote
  #3  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: script unter FF und IE - 01-04-2008 , 08:05 AM



Stephan Dreisbach wrote:
Quote:
ein Javascript soll alle Zellen einer Tabelle kontrollierenund den
Fokus ggf in die nächste Zelle setzen. In TEXTFELD
stehen die Zeile und Spalte in der Form x-y.
script type=javascript
<script type="text/javascript">

http://validator.w3.org/

Quote:
function nurZiffern(TEXTFELD) {
Bezeichner, die keine Konstruktorenreferenzen darstellen, sollten nicht mit
grossem Aufangsbuchstaben beginnen. Ausserdem sollten Variablenbezeichner
nicht vollständig aus Grossbuchstaben bestehen; diese Schreibweise ist
Konstanten vorbehalten. Ausserdem erschwert häufige Grossschreibung die
Lesbarkeit und somit die Wartung des Quelltextes.

Quote:
var ZEICHEN=Kaestchen.elements[TEXTFELD].value;
var K_ARRAY = TEXTFELD.split('-');
var ZEILE=K_ARRAY[0]; var SPALTE=K_ARRAY[1];
var maxSPALTE=20; var maxZEILE=10;
*Eine* Anweisung je Zeile verbessert die Lesbarkeit, genauso wie ein
Leerzeichen zwischen Operand und Operator.

Quote:
if (isNaN(ZEICHEN) && ZEICHEN!='+' && ZEICHEN!='-' && ZEICHEN!='*'
&& ZEICHEN!=':' && ZEICHEN!='=') {
Kaestchen.elements[TEXTFELD].value='';
}
else {
Eeek.

if (isNaN(zeichen) && !/^[+*:=-]$/.test(zeichen))
{
// ...
}
else
{
// ...
}

Quote:
SPALTE=parseInt(SPALTE); ZEILE=parseInt(ZEILE);
Bei parseInt() immer die Basis mit angeben, sonst gibt es unliebsame
Überraschungen:

spalte = parseInt(spalte, 10);
zeile = parseInt(zeile, 10);

Quote:
SPALTE=SPALTE+1;
spalte++;

Weshalb dann aber nicht gleich

spalte = parseInt(spalte, 10) + 1;

?

Quote:
[...]
Kaestchen.elements[TEXTFELD].focus();
Die Definition für `Kaestchen' fe lt für die Analyse.

Quote:
}
}
/script

Unter FF funktioniert es einwandfei, unter Opera werden alle Zellen
gelöscht, wenn ein Buchstabe eingegeben wird und unter IE gehts gar
nicht. Warum?
Der Aufruf der Methode fe lt für die Analyse.


PointedEars


Reply With Quote
  #4  
Old   
Stephan Dreisbach
 
Posts: n/a

Default Re: script unter FF und IE - 01-04-2008 , 08:32 AM



Thomas 'PointedEars' Lahn <PointedEars (AT) web (DOT) de> schrieb:

Quote:
script type="text/javascript"

http://validator.w3.org/
ist korrigiert
Quote:
function nurZiffern(TEXTFELD) {

Bezeichner, die keine Konstruktorenreferenzen darstellen, sollten nicht mit
grossem Aufangsbuchstaben beginnen. Ausserdem sollten Variablenbezeichner
Jeder hat so seine Angewohnheiten .....
Quote:
if (isNaN(ZEICHEN) && ZEICHEN!='+' && ZEICHEN!='-' && ZEICHEN!='*'
&& ZEICHEN!=':' && ZEICHEN!='=') {

if (isNaN(zeichen) && !/^[+*:=-]$/.test(zeichen))
Bis ich das rausgefunden hätte ........
Quote:
Bei parseInt() immer die Basis mit angeben, sonst gibt es unliebsame
Überraschungen:
ok

Quote:
Der Aufruf der Methode fe lt für die Analyse.
[...]
<form name=Kaestchen>
<table id="tab1">
<tr>
<td><input type=text maxlength=1 name=0-0 class=Eingabefeld
onChange="nurZiffern('0-0')"></td>
<td><input type=text maxlength=1 name=0-1 class=Eingabefeld
onChange="nurZiffern('0-1')"></td>
</tr>
..........
</table>
[..]

Das Ganze soll Rechenkästchen für Schüler darstellen (als Hilfe).


Reply With Quote
  #5  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: script unter FF und IE - 01-04-2008 , 05:37 PM



Stephan Dreisbach wrote:
Quote:
Thomas 'PointedEars' Lahn <PointedEars (AT) web (DOT) de> schrieb:
script type="text/javascript"

http://validator.w3.org/

ist korrigiert
Das denke ich nicht, Tim. [tm]

Quote:
Der Aufruf der Methode fe lt für die Analyse.

[...]
form name=Kaestchen
Da fe lt das action-Attribut.

Quote:
table id="tab1"
Wozu das id-Attribut?

Quote:
tr
td><input type=text maxlength=1 name=0-0 class=Eingabefeld
onChange="nurZiffern('0-0')"></td
type=text is redundant, und alle Attributwerte sollten explizit begrenzt werden.

Quote:
td><input type=text maxlength=1 name=0-1 class=Eingabefeld
onChange="nurZiffern('0-1')"></td
/tr
.........
/table
[..]

Das Ganze soll Rechenkästchen für Schüler darstellen (als Hilfe).
onChange="nurZiffern(this, '0-1')"

und dann

function nurZiffern(o, textfeld)
{
var kaestchen = o.form;
// ...
}

statt

Kaestchen

Die Referenzierung von Elementen nur über ihren Namen oder ihre ID is
IE-proprietär und folglich nicht interoperabel. Ansonsten solltest Du debuggen.

Ausserdem würde nicht nicht das onchange-Attribut jedes input-Elements
benutzen, sondern das onsubmit-Attribut des form-Elements.


PointedEars


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.