23. oktober 2001 - 15:38
Der er
2 kommentarer og
1 løsning
Points til jakobA
Takker for hjælpen med mit javascript.
For dem der ikke kender sagen, så har jeg sendt en mail via ekspertn til jakobA, med et spørgsmål.
Kort fortalt, havede jeg en funktion i javascript, som ikke virkede optimalt.
Jeg vidste at jakobA kunne hjælpe mig, derfor valgte jeg denne løsningsform.
_codeb@se.dk
23. oktober 2001 - 15:53
#1
Beklager.
Eksperten points kan kun bruges som betalig for \'offentlige\' spørgsmål. Dvs. både spørgsmål og svar skal være offentligt tilgængelige så andre kan kikke og lære af dem.
Jeg vil lade dig om at beslutte om spørgsmål og svar her er for fortrolige til at offentliggøre.
mvh JakobA
23. oktober 2001 - 15:58
#2
klart, det er rimligt at alle skal kulle lære af det.
Gammel kode:
function CA(){
var frm = document.codebase;
for (var i=0;i<frm.elements.length;i++)
{
var e = frm.elements[i];
if ((e.name != \'allbox\') && (e.type==\'checkbox\'))
{
e.checked = frm.allbox.checked;
if (frm.allbox.checked)
hL(e);
else
dL(e);
}
}
}
function CCA(CB){
var frm = document.codebase;
if (CB.checked)
hL(CB);
else
dL(CB);
var TB=TO=0;
for (var i=0;i<frm.elements.length;i++)
{
var e = frm.elements[i];
if ((e.name != \'allbox\') && (e.type==\'checkbox\'))
{
TB++;
if (e.checked)
TO++;
}
}
if (TO==TB)
frm.allbox.checked=true;
else
frm.allbox.checked=false;
}
function hL(E){
ie = document.all?1:0;
if (ie)
{
while (E.tagName!=\"TR\")
{E=E.parentElement;}
}
else
{
while (E.tagName!=\"TR\")
{E=E.parentNode;}
}
E.className = \"H\";
}
function dL(E){
if (ie)
{
while (E.tagName!=\"TR\")
{E=E.parentElement;}
}
else
{
while (E.tagName!=\"TR\")
{E=E.parentNode;}
}
E.className = \"\";
}
Ny kode:
// <!-- Minus AutoDato -->
var debugOn = true;
function debug( str ) { // til debugging
if ( debugOn ) debugOn = confirm( str );
}; //end debug( string )
function CA() { // set/clear samtlige checkbokse
var frme = document.codebase.elements;
var newVal = frme[\'allbox\'].checked;
for (var i=0; frme.length>i; i++) {
if ( ( frme[i].type == \'checkbox\' )
&&( frme[i].checked != newVal )
) {
setCheckBox( frme[i], newVal );
}
}
}
function CAgroup( groupName ) { // set/clear hele denne gruppe
var nameRe = new RegExp( \"^\"+groupName );
var frme = document.codebase.elements;
var newVal = frme[groupName+\"all\"].checked;
for (var i=0; frme.length>i; i++) {
if ( ( frme[i].type==\'checkbox\' )
&&( nameRe.test( frme[i].name ) )
) {
setCheckBox( frme[i], newVal );
}
}
checkAll();
}; //end CAgroup( number )
function CCA(CB){ // set/clear individuel checkbox
setCheckBox( CB, CB.checked );
checkGroup(CB);
checkAll();
}
function checkAll( ) { // set/clear \'allbox\' checkbox
var frme = document.codebase.elements;
for (var i=0; frme.length>i; i++) {
if ( ( frme[i].type == \'checkbox\' )
&&( frme[i].name != \'allbox\' )
&&( !frme[i].checked )
) break;
}
frme[\'allbox\'].checked = (i==frme.length)?true:false;
}; //end chackAll( )
function checkGroup( CB ) { // set/clear gruppens fælles checkbox
var groupName = CB.name.substring(0,CB.name.indexOf(\"[\"));
var nameRe = new RegExp( \"^\"+groupName+\"\\\\\\[\" );
var frme = document.codebase.elements;
for (var i=0; frme.length>i; i++) {
if ( ( frme[i].type==\'checkbox\' )
&&( nameRe.test( frme[i].name ) )
&&( ! frme[i].checked )
) {
setCheckBox( frme[groupName+\"all\"], false );
return;
}
}
setCheckBox( frme[groupName+\"all\"], true );
}; //end chackGroup( Checkbox object )
function setCheckBox( CB, newVal ) { // set/clear checkbox og style
CB.checked = newVal;
if (document.all) {
while (CB.tagName!=\"TR\") CB=CB.parentElement;
} else {
while (CB.tagName!=\"TR\") CB=Cb.parentNode;
}
CB.className = (newVal)?\"H\":\"\";
}; //end setCheckBox( Checkbox object, boolean )
Takker jakobA, for hjælpen
_codeb@se.dk