[JS/mootools] onclick behalve input
Hallo allemaal,
Ik zit met een klein probleempje.
Ik heb de volgende code:
Nu wordt dus als er op een td wordt geklikt, de span met class"nothidden" in die td "hidden" gemaakt. En de span met class"hidden" "nothidden" gemaakt.
Dit werkt allemaal goed.
Alleen heb ik in de span "hidden" een input staan.
Dus als ik op mijn input klik om deze inhoud te bewerken, wordt hidden weer nothidden en nothidden weer hidden. En is m'n input weer "weg".
Kan ik dit oplossen dmv css selectors? $$('.table tr td *!=input') o.i.d.?
Of heeft iemand een andere oplossing?
Ik hoor het graag!
Mvg,
Boris
PS: ik werk met mootools
Ik zit met een klein probleempje.
Ik heb de volgende code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
/* alleen ff voor de syntax highlight */
$$('.table tr td').each(function(el) {
el.addEvent('click', function(e) {
e.stop();
var nothidden = el.getElements('span.nothidden');
var hidden = el.getElements('span.hidden');
nothidden.removeClass('nothidden');
nothidden.addClass('hidden');
hidden.removeClass('hidden');
hidden.addClass('nothidden');
});
});
?>
/* alleen ff voor de syntax highlight */
$$('.table tr td').each(function(el) {
el.addEvent('click', function(e) {
e.stop();
var nothidden = el.getElements('span.nothidden');
var hidden = el.getElements('span.hidden');
nothidden.removeClass('nothidden');
nothidden.addClass('hidden');
hidden.removeClass('hidden');
hidden.addClass('nothidden');
});
});
?>
Nu wordt dus als er op een td wordt geklikt, de span met class"nothidden" in die td "hidden" gemaakt. En de span met class"hidden" "nothidden" gemaakt.
Dit werkt allemaal goed.
Alleen heb ik in de span "hidden" een input staan.
Dus als ik op mijn input klik om deze inhoud te bewerken, wordt hidden weer nothidden en nothidden weer hidden. En is m'n input weer "weg".
Kan ik dit oplossen dmv css selectors? $$('.table tr td *!=input') o.i.d.?
Of heeft iemand een andere oplossing?
Ik hoor het graag!
Mvg,
Boris
PS: ik werk met mootools
Gewijzigd op 01/01/1970 01:00:00 door Boris Mattijssen
Gesponsorde koppelingen:
Kan je niet een event-handler aan je input element hangen, die dan het event stopt zodat het niet verder propageert naar de tr en andere bovenliggende nodes?
Je kan ook in je event zien waarop geklikt is (e.target of e.srcElement volgens mij, zou best wel eens kunnen verschillen in IE/FF, maar mootools heeft daar vast wel een oplossing voor) en daarvan de tagName opvragen. Is die "INPUT", dan weet je dat je daarop gelikt hebt.
Je kan ook in je event zien waarop geklikt is (e.target of e.srcElement volgens mij, zou best wel eens kunnen verschillen in IE/FF, maar mootools heeft daar vast wel een oplossing voor) en daarvan de tagName opvragen. Is die "INPUT", dan weet je dat je daarop gelikt hebt.
Gewijzigd op 01/01/1970 01:00:00 door Jelmer rrrr
Hmm.. je bodoelt: onClick="return false;" op m'n input?
Werkt helaas niet..
Wel bedankt voor het meedenken!
Edit:
Ik heb nu dit toegevoegd:
Waardoor het totaal er zo uitziet:
Nu kan ik iig in mijn input klikken.
Wanneer ik nu echter op enter druk om mijn formulier te submitten.
Lijkt het wel of die onclick weer "geactiveerd" wordt, en is mijn input weer "weg".
Iemand een idee hoe dit kan?
mvg,
Boris
EDIT2:
Dat laatste stukje code gewijzigd naar:
(dus in de getElement "input" weggehaald.)
Maar het vreemde is, dat als ik nu op enter druk, hij in IE wel submit maar in FF niet..
Iemand enig idee?
mvg
Werkt helaas niet..
Wel bedankt voor het meedenken!
Edit:
Ik heb nu dit toegevoegd:
Code (php)
1
2
3
4
2
3
4
el.getElement('span form input').addEvent('click', function(event) {
event.stop();
return false;
});
event.stop();
return false;
});
Waardoor het totaal er zo uitziet:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
$$('.table tr td').each(function(el) {
el.addEvent('click', function(e) {
e.stop();
el.getElement('span form input').addEvent('click', function(event) {
event.stop();
return false;
});
var nothidden = el.getElements('span.nothidden');
var hidden = el.getElements('span.hidden');
nothidden.removeClass('nothidden');
nothidden.addClass('hidden');
hidden.removeClass('hidden');
hidden.addClass('nothidden');
});
});
?>
$$('.table tr td').each(function(el) {
el.addEvent('click', function(e) {
e.stop();
el.getElement('span form input').addEvent('click', function(event) {
event.stop();
return false;
});
var nothidden = el.getElements('span.nothidden');
var hidden = el.getElements('span.hidden');
nothidden.removeClass('nothidden');
nothidden.addClass('hidden');
hidden.removeClass('hidden');
hidden.addClass('nothidden');
});
});
?>
Nu kan ik iig in mijn input klikken.
Wanneer ik nu echter op enter druk om mijn formulier te submitten.
Lijkt het wel of die onclick weer "geactiveerd" wordt, en is mijn input weer "weg".
Iemand een idee hoe dit kan?
mvg,
Boris
EDIT2:
Dat laatste stukje code gewijzigd naar:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?
el.getElement('span form').addEvent('click', function(event) {
event.stop();
return false;
});
?>
el.getElement('span form').addEvent('click', function(event) {
event.stop();
return false;
});
?>
(dus in de getElement "input" weggehaald.)
Maar het vreemde is, dat als ik nu op enter druk, hij in IE wel submit maar in FF niet..
Iemand enig idee?
mvg
Gewijzigd op 01/01/1970 01:00:00 door Boris Mattijssen
Probleem opgelost.
Heb op de submit button een onClick geplaatst. (onclick="form.onsubmit()")
En nu werkt het.
mvg
boris
Heb op de submit button een onClick geplaatst. (onclick="form.onsubmit()")
En nu werkt het.
mvg
boris



