2012-03-27 27 views
0

Ich suche eine Weile für diese und ich kann nicht etwas finden, das für mich funktioniert.checkbox validation mit jquery

Ich habe diese Checkbox:

<%= Html.CheckBox("cbCodigo") %> <label class="inline" for="Codigo">Codigo</label> 
<%= Html.CheckBox("cbNombreCliente") %> <label class="inline" for="NombreCliente">Nombre del cliente</label> 
<%= Html.CheckBox("cbCiudad") %> <label class="inline" for="Ciudad">Ciudad</label> 

Ich möchte bestätigen, dass nur ein überprüft, wenn eine Textänderung, so etwas wie dieses, und jQuery .validate von verwenden, ich weiß nicht, was ist der beste Weg, um dies zu bestätigen.

tbCodCliente ist eine Textbox, die ich als Suchparameter verwendet werden, und das Kontrollkästchen ist ein Parameter oder ein Wert für die Funktion zum automatischen Vervollständigung der Textbox

$('#tbCodCliente').change(function() { 
    if ($('#cbCodigo').attr('checked', false) && 
      $('#cbNombreCliente').attr('checked', false) && 
      $('#tbCheckbox').attr('checked', false)) { 

      // function for validate method   
    } 
}); 

Ich versuche, diese Art und Weise zu validieren, aber ich don Ich weiß nicht, ob es der beste Weg ist.

EDIT: Ich mag so etwas, aber trotzdem gefunden, wie es

('#tbCodCliente').change(function() { 
    if($("input:checked").length == 0) { 
     $("#request-form").validate({ 
      rules: { 
       checkbox: { 
        required: 'input[type="checkbox"]:checked', 
        minlength: 1 
       } 
      }, 
      messages: { 
       checkbox: {"Please check at least one."} 
      } 
     })   

    } 
}); 
+0

Ich habe gerade die Frage bearbeitet –

Antwort

2

arbeitet machen Wenn dies das einzige Kontrollkästchen auf der Seite ist, dann können Sie jQuery folgende Anweisung versuchen zu überprüfen:

if($("input:checked").length == 1) 

Edit:

um genauer zu sein, können Sie den Code-Validierung ändern, um folgende:

$('#tbCodCliente').change(function() { 
    if($("input:checked").length == 1) { 
     //Do stuff here 
    } 
}); 
+0

danke !, ja, es gibt die einzige Checkbox des Formulars, aber wie verwende ich die .validate() von jquery? –

+2

Und wenn sie nicht die einzigen sind, können Sie immer noch vom Container (über Klasse oder ID) darauf verweisen: if ($ (". Container input: checked"). Length == 1) {/ * ... * /} – Shion

+0

@AlejandroHinestrosa - Hoffen Sie, dass mein Edit Ihre Frage beantwortet. – Epuri

1

Dadurch werden andere Kontrollkästchen deaktiviert, sobald ein einzelnes Kontrollkästchen aktiviert ist.

$('input:checkbox').change(function() { 
     if (this.checked) { 
      $('input:checkbox:not(#'+this.id+')').attr('checked', false); 
     } 
}); 

Demo: http://jsfiddle.net/5btfe/

Und für Single-Checkbox ausgewählten überprüfen Sie epuri Antwort verweisen, die ganz richtig ist.

+0

ja in der Tat, danke !. Ich möchte wissen, wie ich .validate von jquery verwenden, um eine Warnung anzuzeigen, wenn keine der Kontrollkästchen aktiviert ist –

+0

Sie können die obige Überprüfung in eine benutzerdefinierte Methode hinzufügen, die direkt in validate call.http: //stackoverflow.com aufgerufen wird/questions/241145/jquery-validate-plugin-how-to-erstellen-a-simple-custom-rule – codef0rmer