La désactivation de LinkButton ne pas désactiver le clic d'événements en javascript
Je veux désactiver un LinkButton
cliquer sur le site du client.
objLinkButton.disabled = true;
//or
objLinkButton.disabled = -1;
Cela désactive le lien, mais je suis encore capable de cliquez sur le lien et faire la Publication.
Est-il possible que je peux désactiver le lien.
Code:
<asp:linkbutton id="xyz" runat="server"
onClick="javascript:LinkDisable(this)" ></asp:linkbutton>
qui rend un lien qui ne une publication... je suis dans l'ouverture de la page sur la publication dans une nouvelle fenêtre.
Ce que je veux faire est.. quand je clique sur le lien de la première.. il va ouvrir une nouvelle page et puis il faudra désactiver le lien.
ce que je fais .. onClick du lien que j'ai une fonction javascript.. ce qui est quelque chose comme cela..
Dans LinkDisable ...
function LinkDisable(obj)
{
obj.disabled = -1;
obj.href = '#';
//Cant return false from here.. otherwise it wont postback...
}
Quand je fais cela.. le lien devient gris ... mais je suis encore capable de cliquez sur. Je veux arrêter de l'utilisateur de cliquer une seconde fois.
Toute aide est appréciée.
OriginalL'auteur Ben | 2009-04-16
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez désactiver un linkbutton, il suffit d'utiliser de code suivant.
Balisage
De Code C#
OriginalL'auteur Hemal
La façon la plus simple pour désactiver un lien (et le rendre comme du texte normal) sans l'aide de jQuery est de le retirer du
href
attribut entièrement.Par exemple ici est un rendu du lien:
Et le code JavaScript requis:
Cela fonctionne pour moi, dans IE et Firefox, mais vous souhaitez faire des tests plus poussés.
OriginalL'auteur codemonkeh
À l'aide de jQuery, vous pouvez le faire dans un navigateur indépendant, soit en remplaçant le href, ou par l'ajout d'un gestionnaire de clic qui prévaut et arrête le lien de suivi.
ou
Où la
disabled-link
classe a un peu de CSS pour modifier l'apparence du lien afin qu'il ressemble handicapées visuellement.Noter que si le contrôle est à l'intérieur d'un conteneur de dénomination (comme un GridView ou UserControl), vous aurez pour référence le nom à l'aide de la "pour finir avec" sélecteur sur l'id.
MODIFIER: Basé sur la mise à jour. Essayez ceci:
Vous pouvez le faire sans jQuery, mais franchement, jQuery est assez basique et tout le reste serait juste de réimplanter le cadre de jQuery. Une fois que vous avez un peu de javascript et de commencer à essayer de faire un navigateur neutre, vous constaterez que d'investir un peu dans l'apprentissage et l'utilisation d'un framework est payante.
Je comprends votre point de tavnfosson. Reconnaissant de votre aide. J'ai toujours ne peux pas comprendre comment résoudre ce problème.. il suffit de désactiver et de le rendre return false ne fonctionnent pas pour moi .. parce que j'ai cliquer sur le lien la première fois, et puis le désactiver. Je vais essayer de le réparer en quelque sorte... comme de maintenant, je ne sais pas le résoudre
le code sera de nouveau remis à zero à droite.. si vous n'publication que l'ensemble de la page est rendue de nouveau. Corrigez-moi si je me trompe.
Je vous ai compris-à-dire que la publication qui se passait dans une autre fenêtre. Si ce n'est pas correct, nous avons perdu beaucoup de temps. Vous pouvez simplement supprimer le LinkButton côté serveur et de le remplacer par un Littéral.
OriginalL'auteur tvanfosson
Je suis bâtiment sur tvanfosson 's réponse. Sa réponse à l'aide de jQuery fonctionne bien, mais si vous avez des validateurs il sème la pagaille. Va ici:
Ensuite dans votre balisage, assurez-vous de définir ClientIDMode à la Statique.
OriginalL'auteur James Reategui
C'est un montage basé sur le commentaire que vous avez posté pour permettre le linkbutton à suivre à travers sur le premier clic, mais pas autrement.
Pour permettre le lien cliqué la première fois, mais pas après cela, créez une variable sur la page pour garder une trace de la clic.
Depuis linkbuttons produire hrefs sur le front-end, vous pourriez le faire
OnClientClick est spécifique .NET
Si vous voulez le faire après le chargement de la page, dans certaines situations seulement:
Salut Dhana, cette solution fonctionne pour un lien normal, pas quand le lien est créé par un LinkButton. Ce qui se passe est ..en cas de linkbutton il le fait d'une publication. Si la variable à utiliser pour garder une trace est remis à chaque fois que vous effectuez une publication.Je ne peux pas toucher le code du serveur dans cette situation.
Oublié la publication chose que n'ai-je pas! Un autre hackish façon serait d'attribuer à un cookie, qui serait persistante.
Merci de Dhana... je prends mon commentaire en arrière.. comme je suis une publication et d'ouverture dans une nouvelle fenêtre Ty
OriginalL'auteur Dhana
Trouvé la Solution les gars... ces javascript solution fonctionne, mais si vous actualisez la page... il va effacer les varaibles.
Donc c'est un bug là..
Trouvé la solution à l'aide de "userData" ... c'est à dire les données de Session... c'est vraiment cool.
Checkout ce lien:http://www.eggheadcafe.com/articles/20010615.asp
OriginalL'auteur Ben
De l'essayer. Exemple Le Plus Simple
OriginalL'auteur Joy Fernandes