2016-12-06 3 views
1

Ich habe ein Skript, das überprüft, ob ein Eingabefeld ein bestimmtes Kriterium enthält.Überprüfen Sie das Eingabefeld auf mehrere Kriterien

Wenn die Kriterien wahr sind, wird ein div mit einer Nachricht unter dem Eingabefeld angezeigt.

Es funktioniert gut, aber wie kann ich mehr Städte in das Skript hinzufügen?

Wenn ich OR, zum Beispiel: ('Amsterdam' || 'London') mache, wird das Skript nicht funktionieren.

Kann mir bitte jemand helfen?

Eingabefeld

<input type="text" name="city" id="address" onblur="check()" value=""> 

Javascript

function check() { 
    var name = document.getElementById('address').value; 
    if (name.indexOf('Amsterdam') > -1) { 
     $(".message").html("You get a beer!"); 
     return false; 
    } 
} 

<div class = "message"></div> 
+2

Sie müssen 'name.indexOf ("Amsterdam")> -1 || name.indexOf ('London')> -1 ' – Satpal

Antwort

0

können Sie, wenn verwenden anderes. Auf diese Weise können Sie verschiedene Nachrichten für verschiedene Kriterien haben. Siehe unten.

Syntax

if (condition1) { 
    block of code to be executed if condition1 is true 
} else if (condition2) { 
    block of code to be executed if the condition1 is false and condition2 is true 
} else { 
    block of code to be executed if the condition1 is false and condition2 is false 
} 

Reference

Versuchen Sie folgendes:

if (name.indexOf('Amsterdam') > -1) { 
    $(".message").html("You get a beer!"); 
} else if(name.indexOf('London') > -1) { 
    $(".message").html("Other message!"); 
} else { 
    $(".message").html("Something else!"); 
} 

return false; 

Wenn Sie mehrere Kriterien überprüfen möchten und zeigen nur eine Nachricht, die Sie verwenden können || (Oder)

if (name.indexOf('Amsterdam') > -1 || name.indexOf('London') > -1) { 
    $(".message").html("You get a beer!"); 
} 
+0

Vielen Dank! Es funktioniert super! –

+0

Ich bin froh, dass es funktioniert! –

0

Try this:

if (name.indexOf('Amsterdam') > -1 || name.indexOf('London') > -1) { 
    // your code 
} 
0

Wenn Sie nicht allzu besorgt über die Leistung sind, können Sie Regex verwenden, aber sie betrachtet werden, langsamer als indexOf()

$('button').on('click', function() { 
 
    var name = document.getElementById('address').value; 
 
    if ((/^(Amsterdam|London|Texas|Delhi|Tokyo)$/i).test(name)) { 
 
    $(".message").html("You get a beer!"); 
 
    return false; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="city" id="address" value=""> 
 
<button> 
 
    Submit 
 
</button> 
 
<div class="message"></div>

Verwandte Themen