2009-05-08 9 views

Répondre

40

Oui:

<script type="text/javascript"> 
var counter = 0; 
</script> 

et

<button onclick="counter++">Increment</button> 
+1

Je le tapais, quand vous l'avez posté. – UnkwnTech

+1

J'ai corrigé votre bouton html. – UnkwnTech

+3

Vous aviez une balise d'entrée ouverte et une balise de bouton de fermeture. –

6
<script type="text/javascript"> 
var i=0; 

function increase() 
{ 
    i++; 
    return false; 
}</script><input type="button" onclick="increase();"> 
+0

Oh, bien sûr, allez avec le bon appel de fonction. :) –

+0

avec "return false" indiqué dans la fonction ou dans l'événement onclick, il ne sera pas affiché le formulaire. – balint

+1

Souhaitez-il poster le formulaire étant un bouton et non un soumettre? –

0

Oui.

<head> 
<script type='javascript'> 
var x = 0; 
</script> 
</head> 
<body> 
    <input type='button' onclick='x++;'/> 
</body> 

[code Psuedo, Dieu J'espère que c'est juste.]

+0

ouais c'est bien ... – UnkwnTech

0

oui, en supposant que votre variable est dans l'espace de noms global:

<button onclick="myVar += 1;alert('myVar now equals ' + myVar)">Increment!!</button> 
1

Utilisation type = "button" au lieu de "submit", puis ajoutez une onClick gestionnaire pour cela.

Par exemple:

<input type="button" value="Increment" onClick="myVar++;" /> 
+0

Je préfère

+0

@rgz belle étiquette. Je ne savais pas à ce sujet. –

0

Je crois que vous avez besoin quelque chose de semblable à ce qui suit:

<script type="text/javascript"> 
var count; 
function increment(){ 
    count++; 
} 
</script> 

... 

et

<input type="button" onClick="increment()" value="Increment"/> 

ou

<input type="button" onClick="count++" value="Increment"/> 
10

La façon puriste de le faire serait d'ajouter des gestionnaires d'événements au bouton, au lieu de mélanger le comportement avec le contenu (LSM, sémantique en couches Markup)

<input type="button" value="Increment" id="increment"/> 

<script type="text/javascript"> 
    var count = 0; 
    // JQuery way 
    $('#increment').click(function (e) { 
     e.preventDefault(); 
     count++; 
    }); 
    // YUI way 
    YAHOO.util.Event.on('increment', 'click', function (e) { 
     YAHOO.util.Event.preventDefault(e); 
     count++; 
    }); 
    // Simple way 
    document.getElementById('increment').onclick = function (e) { 
     count++; 
     if (e.preventDefault) { 
      e.preventDefault(); 
     } 
     e.returnValue = false; 
    }; 
</script> 
+1

Il n'y a pas d'action par défaut pour un bouton, vous n'avez donc pas besoin de l'empêcher. –

4

Je avais besoin de voir les résultats de ce script et a été en mesure de le faire en incorporant le ci-dessous:

var i=0; 

function increase() 
{ 
i++; 
document.getElementById('boldstuff').innerHTML= +i; 
} 

<p>var = <b id="boldstuff">0</b></p> 
<input type="button" onclick="increase();"> 

ajouter la balise « script » avant tout et une balise de script de fermeture en dessous de la fin de la fonction accolade. Renvoyer faux a causé firefox à accrocher quand je l'ai essayé. Toutes les autres solutions n'ont pas montré le résultat de l'augmentation, selon mon expérience.

0

Avait un problème similaire. Nécessaire d'ajouter autant d'entrées de texte que l'utilisateur voulait, à un formulaire. La fonctionnalité de l'aide jQuery est la réponse à la question:

<div id='inputdiv'> 
<button id='mybutton'>add an input</button> 
</div> 

<script> 
var thecounter=0; //declare and initialize the counter outside of the function 
$('#mybutton').on('click', function(){ 
thecounter++; 
$('#inputdiv').append('<input id="input'+thecounter+'" type="text/>); 
}); 
</script> 

Ajout du nombre à chaque nouvel identifiant d'entrée donné lieu à ids unique qui vous permet d'obtenir toutes les valeurs à l'aide de la fonction jQuery serialize().

Questions connexes