2010-09-21 7 views
0

J'ai un formulaire de page Web avec une case à cocher dessus. J'essaie de mettre la case à cocher en cliquant sur un qui existe sur une autre partie de la page Web en utilisant le onclick.numéro de base javascript

aucune de ces semblent travailler (forme et case à cocher ID/NOM sont tous réglés correctement):

<a href="#" onclick="document.getElementById('frmEditBasicBasic').active.checked=TRUE;"> test </a> 

<a href="#" onclick="document.frmEditBasicBasic.active.checked=TRUE;"> test </a> 

<a href="#" onclick="document.getElementById('active').checked=TRUE;"> test </a> 

<a href="#" onclick="window.document.getElementById('frmEditBasicBasic').active.checked=TRUE;"> test </a> 

<a href="#" onclick="window.document.frmEditBasicBasic.active.checked=TRUE;"> test </a> 

<a href="#" onclick="window.document.getElementById('active').checked=TRUE;"> test </a> 

Répondre

2

Vous devez utiliser l'élément <label> à la place:

<label for="active">Test</label> 

En cliquant sur cette <label> sera automatiquement Activez la case à cocher avec l'ID active. (Si c'est une zone de texte, il se concentrera la zone de texte)


Pour répondre à la question, TRUE doit être en minuscules. (Javascript est sensible à la casse)

+1

Cela devrait être 'for' et non' target'. – BoltClock

+0

@BoltClock: Fixe; Merci. – SLaks

2

Vous devez utiliser <label> pour le travail:

<label for="name">Name</label> 
... 
<input type="checkbox" id="name" name="name" /> 

Ou

<label><input type="checkbox" id="name" name="name" /> Name</label> 

Modifier

Si vous voulez vraiment utiliser le Javascript pour le faire quelque chose de spécial, vous devez ajouter return false; à l'événement onclick, pour empêcher le navigateur de changer de page. Voici un exemple Javascript (je ne l'utilise jamais en ligne Javascript):

document.getElementById('somelink').onclick = function(){ 
    document.getElementById('somecheckbox').checked = false; // Unchecks the checkbox 
    return false; // Prevents the browser from changing page 
};​​​​​​ 
0

Cela fonctionne très bien: (http://jsfiddle.net/NQ5Rm/4/)

<input type="checkbox" id="active" > 

<a href="#" onclick="document.getElementById('active').checked=true;"> test </a> 
​ 
0

JavaScript est sensible à la casse, et ses booléennes sont minuscules. Essayez obj.checked = true à la place. En outre, dans certains navigateurs (par exemple, Chrome), getElementById() ne signifie pas plus que ce qu'il dit: Il obtient un élément par ID, pas par son nom. Définissez la propriété id ainsi que la propriété name.

Les œuvres suivantes bien pour moi dans IE et Chrome:

<body> 
    <a href="#" onclick="document.getElementById('active').checked=true;"> test </a> 
    <form> 
    <input type="checkbox" name="active" id="active" value="Car" /> 
    </form> 
</body> 

Certains ou tous vos autres versions seront probablement tout aussi bien fonctionner, si vous fixer la capitalisation et (si vous ne l'utilisez IE) set id = "foo" ainsi que name = "foo" (et si vous utilisez IE, gardez à l'esprit que la plupart d'entre nous ne le sont pas).

Enfin, le < étiquette > chose suggérée par d'autres commentateurs est utile de savoir, et va probablement résoudre votre problème mieux que le JavaScript.