J'ai un contrôle composite qui émet HTML qui ressemble à ceciélément HTML, personnalisé client événement
<span id="myControl">
<select id="myControl_select">
<option value=""></option>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
</select>
</span>
Je souhaite que le contrôle de la durée de parent pour déclencher un événement lorsque le contenu liste déroulante onchange événement se déclenche. Comme il est un contrôle composite, je dois permettre à un consommateur de ce contrôle pour pouvoir attribuer le gestionnaire d'événements (j'espérais par un attribut HTML appelé OnValueChanged ou quelque chose)
editted à intégrer la suggestion de bobince. Le seul problème est que le paramètre argument n'est pas passé. C'est actuellement 'indéfini'.
<script>
window.onload = function() {
var objSelect = document.getElementById('myControl_select')
if (objSelect.attachEvent)
objSelect.attachEvent("onchange", myControl_ddlOnChange);
else if (objSelect.addEventListener)
objSelect.addEventListener("onchange", myControl_ddlOnChange, false);
}
function myControl_ddlOnChange()
{
//fire span on value changed event
var target= document.getElementById('mycontrol');
var handler= target.getAttribute('onvaluechanged');
var args = { text : 'Hi!', index : 0 }
if (handler)
new Function(handler).call(target, args);
}
function myControl_ValueChanged()
{
alert(arguments[0]);
}
</script>
<span id="myControl" onvaluechanged="myControl_ValueChanged();">
<select id="myControl_select">
<option value=""></option>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
</select>
</span>
Est-ce un contrôle utilisateur ou un contrôle serveur? –
Ceci est un contrôle serveur émettant le balisage html ci-dessus – user62064