2010-07-06 2 views
1

Je veux désactiver un bouton de soumission quand onclick. Im capable de désactiver le bouton, mais je ne peux pas soumettre la valeur de poste à PHP.onclick disable soumettre le bouton

+6

Vous pourriez vouloir montrer comment vous le désactivez. Il est impossible de vous aider avec les petites informations que vous avez présentées. –

+0

bien regardant mes questions précédentes posté, je ne peux pas trouver de bonnes années solides ici. Tout ce que j'ai vu, ce sont des gens qui se disputaient sur ajax vs iframe. alors dites-moi wats là pour les commentaires. – nuttynibbles

+0

salut daniel, je vais montrer mon code ci-dessous. N'hésitez pas à le commenter. salut – nuttynibbles

Répondre

1

j'ai trouvé une alternative en ligne. wat je l'ai fait est de créer un faux bouton désactivé et caché. quand le bouton réel est cliqué, je le cacherai et montrera le faux bouton de désactivation.

bouton réelle:

$onclick = " 
var boolconfirm = confirm('$strconfirmattempt'); 
if(boolconfirm==true){ 
finishattempt.style.display='none'; 
finishattempt2.style.display='inline'; 
} 
return boolconfirm;"; 

bouton faux:

echo "<input type=\"submit\" name=\"finishattempt\" value=\"submit\" onclick=\"$onclick\" />. 
<input type=\"submit\" id=\"finishattempt2\" name=\"finishattempt2\" value=\"submit\" style=\"display:none;\" DISABLED/>\n"; 
+0

Formatez mieux votre code. Ça ne devrait pas être dans un morceau incompréhensible comme ça. Et une fois que vous l'avez formaté, mettez en surbrillance le code et appuyez sur Ctrl + K, ce qui indentera tout par 4 espaces, l'amenant à être affiché comme code source pré-formaté. –

+0

+1 pour trouver une solution réalisable et formater votre code. Bien que dans le futur vous pourriez vouloir casser le code en plus de lignes de sorte que les barres de défilement horizontales n'apparaissent pas. Mais comme c'est il est déjà 100x mieux que cela semblait auparavant. –

+0

haha ​​ok tks. Je vais essayer de le mettre en forme mieux la prochaine fois. – nuttynibbles

3
<input type="submit" onclick="this.disabled = true" value="Save"/> 

ou ref this

+0

salut, cela fonctionne mais si je wanan soumettre à PHP, la valeur POST est manquant. Cependant, j'ai trouvé une solution alternative que je publierai ci-dessous. N'hésitez pas à commenter. – nuttynibbles

+0

La valeur ne sera pas conservée par la poste si cela est fait. – Polaris878

3

Si vous désactivez une entrée, alors sa valeur sera naturellement pas inclus dans les données de formulaire. Vous devrez désactiver le bouton après que vous soumettez. Si vous liez un rappel à onclick, il exécute avant le formulaire soumet.

Qu'est-ce que vous avez besoin est quelque chose comme ceci:

jQuery:

$(document).ready(function() { 
    $(document).unload(function() { 
     $('#submit-btn').attr('disabled', 'disabled'); 
    }); 
}); 

JS réguliers:

document.onunload = disableSubmit; 
function disableSubmit() { 
    /* disable the submit button here */ 
} 

Fondamentalement, au lieu de se lier à l'événement onclick du bouton Envoyer , cela lie le code de désactivation à l'événement de déchargement du document (document.onunload), qui se déclenche une fois le formulaire soumis et vous commencez à quitter la page.

+0

Ajouter quelque chose sur la façon dont votre code est jQuery et pas simplement vieux JS – Polaris878

+0

Ah, oui, j'avais mentionné que le premier extrait était jQuery dans une de mes modifications, mais je pense que je l'ai accidentellement supprimé. –

1

Vous pouvez utiliser un champ caché qui tient la valeur du bouton et tirez la valeur de vos données POST:

<input type="hidden" id="hiddenField" value="default" /> 

<input type="button" id="myButton" onclick="buttonClick();"> 

function buttonClick() 
{ 
    document.myForm.myButton.disabled = true; 
    document.myForm.hiddenField.value = "myButtonClicked"; 
} 

Mon PHP est un peu rouillé, mais vous pouvez accéder au champ caché comme ceci:

if ($POST['hiddenField'] == "myButtonClicked") 
{ 
    // Click handling code here 
} 
1

Pourquoi ne pas créer un bouton d'envoi désactivé qui est caché, et un bouton de soumission active et onClick montrent les personnes handicapées et masquer l'actif? Je pourrais le faire en jQuery, mais je suis un peu inutile sans cela. Triste, hein?

1

En utilisant jQuery, ajoutez gestionnaire onClick qui retourne false:

<input type="submit" value="Submit" onClick="$(this).click(function() {return false;});"/> 
2

Je l'ai résolu avec jQuery simple. Le code supprime le bouton sur le clic, puis ajoute le faux bouton ou un peu comme le "chargement .." du texte et envoie finalement le formulaire.

HTML:

<div class="holder"><input type='submit' value='ACCEPT' class='button'></div> 

jQuery:

$('.button').click(function() { 
     $('.button').remove(); 
     $('.holder').append("//fake input button or whatever you want."); 
     $('.form').submit(); 
    }); 

En diference avec d'autres méthodes telles que les décharger des changements de bouton dans le moment instant où vous cliquez et envoie le formulaire. Avec des formes lourdes, je pense que c'est une meilleure pratique.