2016-06-20 6 views
1

Mit folgendem Code versuche ich die Email textFields zu validieren, aber das Problem ist, dass selbst wenn der Email und Confirm Email Text in beiden Feldern gleich ist gibt es eine Fehlermeldung, dass sie nicht gleich sind. Ich weiß nicht was mit meinem Code falsch ist.Fehler beim Setzen von Validierungen auf textFields

- (IBAction)submit_Act:(id)sender { 
//new// 
NSString *errorMessage; 
errorMessage = @""; 
if ([usernametxt.text isEqualToString:@""]){ 
    errorMessage = @"Please enter Username \n"; 
} 

if([passwordtxt.text isEqualToString:@""]){ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter Password\n"]; 
} 

if([confirmPasswordtxt.text isEqualToString:@""]){ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter Confirm Password\n"]; 
} 
if((passwordtxt.text == confirmPasswordtxt.text) == false){ 
    errorMessage = [errorMessage stringByAppendingString:@"Password and Confirm Password are not same.\n"]; 
} 

NSString *regex = @"[^@][email protected][A-Za-z0-9.-]+\\.[A-Za-z]+"; 
NSPredicate *emailPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; 

if([emailaddtxt.text isEqualToString:@""]){ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter Email Address\n"]; 
} 
else if ([emailPredicate evaluateWithObject:emailaddtxt.text] == NO) { 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter valid Email Address\n"]; 
} 

if([confirmEmailtxt.text isEqualToString:@""]){ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter Confirm Email Address\n"]; 
} 
else if ([emailPredicate evaluateWithObject:confirmEmailtxt.text] == NO) { 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter valid confirm Email Address\n"]; 
} 

if((emailaddtxt.text == confirmEmailtxt.text) == false) 
{ 
    errorMessage = [errorMessage stringByAppendingString:@"Email and Confirm Email are not same.\n"]; 
} 

if([citytxt.text isEqualToString:@""]){ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter City\n"]; 
} 

if([statetxt.text isEqualToString:@""]){ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter State\n"]; 
} 

if([countrytxt.text isEqualToString:@""]){ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter Country\n"]; 
} 

if (_agree_btn.selected==false) { 
    errorMessage = [errorMessage stringByAppendingString:@"Please agree Terms & Conditions\n"]; 
} 

if (![errorMessage isEqualToString:@""]) { 
    NSLog(@"not done"); 
    [[[UIAlertView alloc] initWithTitle:nil message:errorMessage delegate:nil cancelButtonTitle:nil otherButtonTitles:@"Ok", nil] show]; 
    return; 
} 
} else{ 

    NSLog(@" Done Dana done"); 

    _activityIndicator.hidden=NO; 
    [_activityIndicator startAnimating]; 

    protocolTest = [[ClassWithProtocol alloc] init]; 
    [protocolTest setDelegate:self]; 
    NSString *post = [NSString stringWithFormat:@"task=webapi.registerClient&username=%@&password=%@&person_name=%@&email=%@&terms_check=1&city=%@&state=%@&country=%@&user_id=%@",usernametxt.text,passwordtxt.text,contactPersonstxt.text,emailaddtxt.text,citytxt.text,statetxt.text,countrytxt.text,_fetchid]; 
    [protocolTest startLogintask:post]; 

} 
+0

nicht vergleichen String wie "if ((emailaddtxt.text == confirmEmailtxt.text) == false)" vergleicht sie wie "if ([emailaddtxt.text isEqualToString :: confirmEmailtxt.text])" –

+0

All Hilfe Jungs, immer noch das gleiche Problem? – vicky

+0

Hat jemand eine Vorstellung von dem Problem, das ich hier habe? – vicky

Antwort

0

statt

if((emailaddtxt.text == confirmEmailtxt.text) == false) 
{ 
    errorMessage = [errorMessage stringByAppendingString:@"Email and Confirm Email are not same.\n"]; 
} 

vergleichen sie wie

if(![emailaddtxt.text isEqualToString:confirmEmailtxt.text]) 
{ 
    errorMessage = [errorMessage stringByAppendingString:@"Email and Confirm Email are not same.\n"]; 
} 
+0

und was ist, wenn E-Mail und confirmEmail sind gleich, immer noch wird es zeigen, dass Nachricht – vicky

+0

überprüfen Sie meine aktualisierte Antwort –

+0

Prajapathi Ihre aktualisierte Antwort ist nichts anderes als die gleiche Antwort wie Kirti Mali siehe unten, die Antwort von ihr gegeben. – vicky

0

wie diese versuchen,

if([passwordtxt text] != [confirmPasswordtxt text]) 
{ 
    errorMessage = [errorMessage stringByAppendingString:@"Password and Confirm Password are not same.\n"]; 
} 

für E-Mail,

if([emailaddtxt text] != [confirmEmailtxt text]) 
{ 
    errorMessage = [errorMessage stringByAppendingString:@"Email and Confirm Email are not same.\n"]; 
} 

Das wird gut funktionieren.

+0

Nein, es funktioniert nicht, wenn sowohl die E-Mail-Adresse als auch die Bestätigungs-E-Mail-Adresse identisch sind, die E-Mail-Adresse und die Bestätigungs-E-Mail nicht übereinstimmen – vicky

+0

Haben Sie es mit 'isEqualToString' versucht? –

+0

ya ich fertig mit isEqualToString, aber nicht funktioniert – vicky

0

prüfen unten Code:

if(![emailaddtxt.text isEqual:confirmEmailtxt.text]) 
{ 
    errorMessage = [errorMessage stringByAppendingString:@"Email and Confirm Email are not same.\n"]; 
} 
+0

es gibt mir den gleichen Fehler E-Mail und confEmail sind nicht gleich, auch wenn sie gleich sind – vicky

+0

@vicky mein Code ersetzen Sie mit Ihrem diese Zeilencode if ((emailaddtxt.text == confirmEmailtxt.text) == false) –

+0

vergesse nicht "!" in der Bedingung –

0

Das Problem hierbei war die Textfelder mit @ und. Zeichen können nicht direkt verglichen werden. Wir müssen sie zuerst in Zeichenfolgen konvertieren und sie dann mit isEqualToString vergleichen, also habe ich hier die Lösung gefunden, die ich bei meinem Problem gefunden habe.

NSString *emailID = emailaddtxt.text; 
NSString *confemail = confirmEmailtxt.text; 

NSString *regex = @"[^@][email protected][A-Za-z0-9.-]+\\.[A-Za-z]+"; 
NSPredicate *emailPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex]; 

if([emailID isEqualToString:@""]){ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter Email Address\n"]; 
    NSLog(@"email is%@",self.emailaddtxt); 
} 

if ([emailPredicate evaluateWithObject:emailID] == NO) { 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter valid Email Address\n"]; 
} 


NSString *regex2 = @"[^@][email protected][A-Za-z0-9.-]+\\.[A-Za-z]+"; 
NSPredicate *confemailPredicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", regex2]; 

if([confemail isEqualToString:@""]){ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter Confirm Email Address\n"]; 
    NSLog(@"email is%@",self.confirmEmailtxt.text); 
} 

if([confemailPredicate evaluateWithObject:confemail] == NO) 
{ 
    errorMessage = [errorMessage stringByAppendingString:@"Please enter valid confirm Email Address\n"]; 
} 

if(![emailID isEqualToString:confemail]) 
{ 
    errorMessage = [errorMessage stringByAppendingString:@"Email and Confirm Email are not same.\n"]; 
    NSLog(@"email is%@& confemail is%@" ,self.emailaddtxt.text,self.confirmEmailtxt.text); 
} 
Verwandte Themen