onpropertychange

  • Onderwerp starter Onderwerp starter Waltz
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Waltz

Gebruiker
Lid geworden
8 nov 2009
Berichten
5
hey allemaal.

voor een control dat ik maak heb ik de onpropertychange functie nodig in IE.
Er zijn geen andere opties mogelijk dan enkel deze functie voor wat ik wil bereiken maar ik ben nu op een probleem gestoten.
ik heb onderstaande html gemaakt om mijn probleem te dupliceren.
wanneer je op de knop drukt dan zal je zien dat de onpropertychange de eerste keer niet meer getriggered word als je opnieuw iets typt.

Is er een manier omdit probleem te verhelpen ? ik weet zeker dat het gaat maar alleen weet ik niet hoe.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript">
	function propertychange()
	{
		var result = document.getElementById("result");
		result.innerHTML = editor.value;
	}
	function button_click()
	{
		editor.value += "_";
	}
</script>
</head>
<body>
<input type="textbox" name="editor" value="test" onpropertychange="propertychange()" /><input type="button" value="Mask toevoegen" onclick="button_click()" />
<br>
<div id="result"></div>
</body>
</html>
 
Er zijn geen andere opties mogelijk dan enkel deze functie voor wat ik wil bereiken
sure.....

wanneer je op de knop drukt dan zal je zien dat de onpropertychange de eerste keer niet meer getriggered word als je opnieuw iets typt.
'kay, een paar correcties:
1. het is tegenwoordig <script type='text/javascript'>, niet 'lang=...'
2. gebruik gEBY dan wel consistent; je editor veld heeft alleen een naam en geen id, en je roept m ook niet aan via z'n id
3. zet je script helemaal onderaan je pagina, niet boven je elementen​
hier, probeer dit:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

</head>
<body>
<input type="textbox" name="editor" id='editor' value="test" onpropertychange="propertychange()" /><input type="button" value="Mask toevoegen" onclick="button_click()" />
<br>
<div id="result"></div>



<script type='text/javascript'>

var editor = document.getElementById('editor');

    function propertychange()
    {
        var result = document.getElementById("result");
        result.innerHTML = editor.value;
    }
    function button_click()
    {
        editor.value += "_";
    }
</script>


</body>
</html>



[edit]ohja, trouwens, het werkt niet in FF. Dus daar kan je ook nog wat aan doen.[/edit]
 
bedankt voor de reactie maar ik heb enkel het probleem gedupliceerd van een een groter project waar ik aan werk.

1. Het script komt automatisch bovenaan te staan.
2. text/javascript word al automatisch toegevoegd, dus dat is geen probleem.
3. in FF werkt het idd niet maar daar kan ik succesvol oninput gebruiken.
4. de textbox heeft een id en naam want ik werk met asp.net en daar maakt hij beide aan. maar in dit geval had je wel gelijk.

maar ook al doe ik uw aanpassingen het probleem blijft.
ik heb gevonden dat wanneer ik

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

weg haal dat het wel weer werkt maar deze lijnen worden ook automatisch geplaatst.
ik weet dat het mogelijk is maar moet een workarround vinden om mijn probleem op te lossen.

Heb gedacht aan een fakepropertychange te maken omdat ik zoiezo onkeydown moet controleren maar dan heb ik nogaltijd geen oplossing voor wanneer ik op een contextmenu click.
 
Laatst bewerkt:
ik heb de oplossing voor mijn probleem gevonden.
als ik een value wil changen via script dan moet ik de value 2x toevoegen en ervoor zorgen dat de onpropertychange niet in een loop geraakt.
hierna werkt de onpropertychange weer direct in de userinterface.
het is denk ik een kleine hack waardoor de propertychange weer direct werkt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan