2011-10-31 3 views
-1

Je fais un formulaire d'inscription, dans lequel j'ai 8 champs de texte et un bouton de soumission.Comment faire une validation sur textfield?

Chaque fois que l'utilisateur ne parvient pas à entrer l'un des champs de texte, un message d'erreur doit être généré lors du clic sur le bouton d'envoi.

Et lorsque l'utilisateur remplit tous les champs de texte, il suffit de cliquer sur le bouton soumettre pour passer à la page suivante.

S'il vous plaît donnez-moi quelques conseils, merci.

Répondre

5

Logique simple, dans votre action Envoyer, vérifiez que votre textField.text n'est pas vide ou vide (@ ""). Sinon, textField.text affiche UIAlert. Comme cette

-(IBAction) submitButton 
{ 
    if(self.txtName == nil || [self.txtName.text isEqualToString:@""]) 
    { 
    [self showErrorAlert]; 
    } 

    if(self.txtEmail == nil || [self.txtEmail.text isEqualToString:@""]) 
    { 
    [self showErrorAlert]; 
    } 


} 
// and show error alert as 
-(void) showErrorAlert 
{ 
    UIAlertView *ErrorAlert = [[UIAlertView alloc] initWithTitle:@"" 
           message:@"All Fields are mandatory." delegate:nil 
           cancelButtonTitle:@"OK" 
           otherButtonTitles:nil, nil]; 
    [ErrorAlert show]; 
    [ErrorAlert release]; 
} 
+0

Si j'ai plus d'un UITextField? –

1

Définissez la méthode sur un clic de bouton Envoyer

-(IBAction)submit:(id)sender 
{ 
    //Do all the textField Validation 
} 

Vérifiez toutes les données des textfield en utilisant

[textfield.text isEqualToString:@""] 

mettre cela en instruction if pour tous les champs de texte .. Si condition est vraie, puis afficher une alerte Afficher

2
-(void)emptyTextfieldVaildation 
{ 
    if(([TxtFieldName.text isEqualToString:@""]) || ([TxtFieldPaswrd.text isEqualToString:@""])) 
    { 

    UIAlertView *ErrorAlert = [[UIAlertView alloc] initWithTitle:@"Error!!" 
           message:@"Please fill in the details." delegate:nil 
           cancelButtonTitle:@"OK" 
           otherButtonTitles:nil, nil]; 
    [ErrorAlert show]; 
    [ErrorAlert release]; 
    } 
    else 
    { 
    // Action to be called on Submit button touch 
    } 
} 
+0

vérifier: if ([TxtFieldName.text isEqualToString @ ""] && [TxtFieldName.text longueur] == 0) {NSLog (@ "Veuillez remplir les détails, le nom est vide"); } –

+0

Cela fonctionne pour moi. –

0

Vous devez vérifier tous les champs avant, et il y a plusieurs façons de le faire. Vous pouvez contrôler la longueur du texte de chaque champ et afficher une alerte si un champ est vide. Vous pouvez vérifier la propriété length de la NSString, de sorte que vous pouvez également opérer sur la longueur (par exemple, le mot de passe doit être 8 caractères, sinon Alert.). Si vous avez marqué ces 8 TextField (ou si vous savez qu'il ya juste cette textfields dans votre vue) une bonne façon peut ressembler à ceci:

for(UITextField * tf in [self.view subviews]){ 
if(![tf.text length]>0){ 
     //show the alert 
    } 
} 

espérons que cette aide.

0

La nuit dernière, je me débattais avec cela aussi et j'utilisé

if ([myTextField.text length] == 0) { 
     // error code to handle empty text field. 
} 

pour traiter champ de texte vide. Cela fonctionne, pour le champ de texte vide, bien sûr, mais échoue s'il y a des espaces dedans. Certaines personnes dans SO donnent la suggestion de couper la chaîne d'abord avant d'évaluer en utilisant le code ci-dessus. Voir le lien

How to enable a UIButton if a textfield is not empty?

0

ensemble propriété tag de tous les champs de texte de manière unique et y accéder en utilisant if(textFieldName.tag==*yourtag*) en bouton événement d'action ...

Questions connexes