2016-05-03 5 views
-1

Ich habe ein modales Popup mit einem Formular, ich kann den grundlegenden Validierungscode einrichten, aber ich bin mir nicht sicher, wie ich das machen soll, was ich brauche.jQuery Bedingte Validierung auf Textarea und Dateieingaben

Ich habe 2 Eingänge a und eine <input type="file"> für Bild-Uploads. Ich möchte überprüfen, ob mindestens eine von ihnen gültig ist. ein Beispiel wäre ...

1) Benutzer fügt Beschreibung in den Textbereich, aber kein Bild //this is fine and file upload not required

2) Benutzerdatei fügt aber nicht Beschreibung //this is fine and textarea not required

3) Benutzer fügt weder und aufgefordert wird, um einen von ihnen auszufüllen.

Vielen Dank im Voraus.

+0

versuchen Sie, etwas zu tun Dies? https://jsfiddle.net/jaumzera/erpvfdhf/2/ – Jaumzera

+0

Ja genau aber vorzugsweise mit jQuery validate –

Antwort

0

Hier ist ein fiddle Beispiel für eine einfache Logik hinter Ihrem Problem.

$('#validate').click(function(){ 
    var text = false; 
    var file = false; 

    if ($('textarea').val() != '') 
     text = true; 

    if ($('input').val() != '') 
     file = true; 

    if (!text && !file) 
     alert ('Woah! Enter one of those!'); 
    else 
     alert('I can live with one input'); 

}); 

Auf click oder submit oder was auch immer Fall, dass Sie wählen, nehmen Sie einen Blick auf dem Wert des Textbereiches und die Datei-Eingabe. Wenn der Wert falsch ist, wissen Sie, dass das Feld "ungültig" ist. Wenn Sie feststellen, dass beide Felder "ungültig" sind, fordern Sie Ihren Benutzer auf, einen von ihnen einzugeben. Ansonsten haben Sie "gültige" Eingaben und können zu anderen Aktionen wechseln.

Stellen Sie sicher, dass Sie die richtigen Selektoren für Ihren Code verwenden.

0

HTML

<input type="file" id="text" /> 
<textarea id="textarea"></textarea> 
<input type="button" value="ok" id="ok" /> 

Javascript

$(function() { 
    $("#ok").click(function() { 
    var $text = $("#text"); 
    var $textarea = $("#textarea"); 
    if ($text.val() == "" && $textarea.val() == "") { 
     alert("fill at least one"); 
    } 
    }); 
}); 

Hier ist die komplette Geige:

Es gibt auch ein Beispiel mit jQuery Validator hier: jQuery Validation - Two fields, only required to fill in one