2010-12-02 87 views
6
<select name="history" id="history" > 
<option value="history 1" onClick="alert('h1');">history 1</option> 
<option value="history 2" onClick="alert('h2');">history 2</option> 
<option value="clearhistory" onClick="this.form.submit();" >Clear History</option> 
</select> 

Quelqu'un pourrait-il m'aider avec ce script? J'attends que chaque fois que l'utilisateur clique sur l'histoire 1 ..il alertera h1 le script fonctionne dans Firefox et IE, mais pas dans Chrome :(javascript onclick alerte ne fonctionne pas en chrome

Répondre

10

utilisation onchange au lieu de onclick pour les listes de sélection.

<select name="history" id="history" onchange="historyChanged(this);"> 
<option value="history1">history 1</option> 
<option value="history2">history 2</option> 
<option value="clearhistory">Clear History</option> 
</select> 

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
<script type="text/javascript"> 

function historyChanged() { 
    var historySelectList = $('select#history'); 
    var selectedValue = $('option:selected', historySelectList).val(); 

    alert(selectedValue); 

    if (selectedValue == 'clearHistory') { 
     historySelectList.form.submit(); 
    } 
} 

$(function() { 
    alert('my alert'); 
    $('select#history').change(historyChanged); 
}); 

</script> 
7
Utilisez

onChange sur la sélection au lieu de chaque option. voici le jsFiddle http://jsfiddle.net/tBjkg/

<select name="history" id="history" onChange="alert(this.value);"> 
<option value="history1">history 1</option> 
<option value="history2">history 2</option> 
<option value="clearhistory">Clear History</option> 
</select> 

l'alerte (this.value) fait référence à la valeur de l'option dans le select qui est actuellement sele cted.

12

Si vous souhaitez utiliser onClick pour l'élément d'option dans Chrome, IE, etc., vous devez utiliser courte fix: set onChange attribut de l'élément de sélection pour "this.options[this.selectedIndex].onclick()"

+2

solution excellente ..! – user525146

+1

Génial! Cela avait mangé ma tête pendant des heures maintenant! Merci beaucoup! –

0

Dans certains navigateurs,

choisir la même option deuxième fois,

aucun jet d'événement d'événement.

Cela aide:

<select onchange="alert/*orwhateveryoudowith:*/(this.value);/*but set:*/this.selectedIndex=0"> 
<option disabled selected>Choose your Plan</option> 
<option value=1>Plan 1</option> 
<option value=2>Plan 2</option> 
<option value=3>Plan 3</option> 
</select>