2011-04-23 3 views
0

J'appelle une fonction javascript sur le client clique sur le bouton asp.net et je souhaite empêcher la publication. La fonction fonctionne mais elle ne s'arrête pas d'être postée. Mon Javascript est:JavaScript - Retourne false de la fonction ne fonctionne pas?

function User2Check() 
    { 
     var user2id=document .getElementById("txtP2UserName"); 
     var user2password=document .getElementById("txtP2Password"); 

     if(user2id.value=='' & user2password.value!='') 
     { 
      alert("User name is required"); 
      user2id=document .getElementById("txtP2UserName").foucs(); 
      e.preventDefault();     
      return false; 
     } 
     if(user2id.value!='' & user2password.value=='') 
     { 
      alert("Password is required"); 
      user2id=document .getElementById("txtP2UserPassword").foucs(); 
      e.preventDefault();     
      return false; 

     } 


    } 

Le J'appelle cette fonction est:

<asp:Button runat="server" ID="btnSubmit" OnClientClick="return User2Check();" TabIndex="12" Text="Submit" onclick="btnSubmit_Click" /> 

guide plz.

Répondre

1

Votre javascript prend un paramètre mais l'appel de OnClientClick du bouton n'a aucun paramètre. Je pense que puisque e est nul, la fonction se termine ou retourne avant de retourner false mais puisque les appels focus() sont avant d'appeler quoi que ce soit sur e, la fonction semble fonctionner.

+0

J'ai essayé en supprimant l'argument, mais pas de chance. J'ai également essayé de passer l'argument mais encore une fois cela n'a pas fonctionné. – user576510

+0

tout en supprimant l'argument de la fonction, avez-vous également le supprimer du corps de la fonction? Et, comme indiqué par steve, vous avez une faute de frappe, ce devrait être 'focus()' pas 'foucs()' –

1

vous devez utiliser && au lieu de &

if(user2id.value!='' && user2password.value=='') 

ET: Fonction a besoin d'un argument, mais vous appellent sans argument

Vous pouvez le faire comme

function User2Check(e) 
{ 
    var user2id=document .getElementById("txtP2UserName"); 
    var user2password=document .getElementById("txtP2Password"); 

    if(user2id.value=='') 
    { 
     alert("User name is required"); 
     user2id=document .getElementById("txtP2UserName").focus(); 
     e.preventDefault();     
     return false; 
    } 
    if(user2password.value=='') 
    { 
     alert("Password is required"); 
     user2id=document .getElementById("txtP2UserPassword").focus(); 
     e.preventDefault();     
     return false; 
    } 

return true; 

}

<asp:Button runat="server" ID="btnSubmit" OnClientClick="return User2Check(event);" TabIndex="12" Text="Submit" onclick="btnSubmit_Click" /> 
+0

ici vous utilisez "Fonction a besoin d'un argument, mais vous appelez sans argument" mais ce n'est pas nécessaire. son travail bien. –

+0

@Hitesh: merci de l'indiquer. – Gaurav

0

Vous avez mal orthographié foucs();

Le code s'arrêtera de fonctionner après cette erreur.

-1

Étant donné que vous ne semblez pas retourner vrai, placez un point d'exclamation avant la fonction. Par exemple:

!function(){ 
    // Code here! 
} 
+0

-1: Ceci n'exécutera pas la fonction elle-même. Ce fragment de code sera toujours évalué à false, quelle que soit la fonction retournée. La négation s'applique à la fonction elle-même, qui est normalement une valeur de vérité, de sorte qu'elle devient fausse. –

1

Vous utilisez le code ci-dessous et supprimez "e.preventDefault();" à partir du code.

function User2Check() 
{ 
var user2id=document .getElementById("txtP2UserName"); 
var user2password=document .getElementById("txtP2Password"); 

if(user2id.value=='') 
{ 
    alert("User name is required"); 
    user2id=document .getElementById("txtP2UserName").focus(); 
    return false; 
} 
if(user2password.value=='') 
{ 
    alert("Password is required"); 
    user2id=document .getElementById("txtP2UserPassword").focus(); 
    return false; 
} 
    return true; 
} 

et dans le code côté serveur utilisation

<asp:Button runat="server" ID="btnSubmit" OnClientClick="return User2Check();" TabIndex="12" Text="Submit" onclick="btnSubmit_Click" /> 
Questions connexes