2012-05-21 13 views
8

Mam następujące pola wyboru:JQuery pole tekstowe walidacji-input być wymagane, jeżeli zaznaczone pole wyboru

<input type="checkbox" id="startClientFromWeb" name="startClientFromWeb" data-bind="checked: StartClientFromWeb" /> 

oraz poniższe pole tekstowe wejściowe:

<input id="mimeType" name="mimeType" data-bind= "value: MimeType" /> 

To jest mój js Kod weryfikacyjny:

$("#franchiseForm").validate({ 
      rules: { 
       mimeType: { 
        required: $("#startClientFromWeb").is(":checked") 
       } 
      } 
     }); 

Chcę, aby pole tekstowe mimeType było wymagane tylko po zaznaczeniu pola wyboru. Z jakiegoś powodu powyższe nie działa. Jestem całkiem nowy w javascript i jquery. Każda pomoc z roboczym przykładem zostanie bardzo doceniona. Dziękuję Ci!

Odpowiedz

9

Możesz dodać własne metody zwyczaj sprawdzania poprawności obsługiwać takie rzeczy:

$.validator.addMethod("requiredIfChecked", function (val, ele, arg) { 
    if ($("#startClientFromWeb").is(":checked") && ($.trim(val) == '')) { return false; } 
    return true; 
}, "This field is required if startClientFromWeb is checked..."); 


$("#franchiseForm").validate({ 
     rules: { 
      mimeType: { requiredIfChecked: true } 
     } 
}); 
+0

Próbowałem twojego kodu. To daje mi następujący błąd: "Oczekiwany::" dla tej linii: mimeType: {requiredIfChecked} Czy możesz podać przykład w Fiddle? – Mdb

+0

'{requiredIfChecked: true}' Przepraszamy ... – ShaneBlake

+0

Dziękujemy! Problem polegał na tym, że stosuję walidacje na $ (document) .ready, a wartość pola wyboru jest zawsze fałszywa. Teraz stosuję sprawdzanie poprawności po wywołaniu ko.applyBindings i działa zgodnie z oczekiwaniami. W każdym razie dziękuję za pomoc. – Mdb

2

Weryfikacja nie będzie triger, jeśli wejście jest disabled. Możesz użyć tego faktu - pole tekstowe będzie wymagane, ale początkowo wyłączone, i włącz je dopiero po zaznaczeniu pola wyboru.

$(function() { 
    $('#startClientFromWeb').change(function() { 
     if ($(this).is(':checked')) { 
      $('#mimeType').removeAttr('disabled');     
     } 
     else { 
      $('#mimeType').attr('disabled', 'disabled'); 
     } 
    }); 
}); 
+0

nie zostały wyłączone wejście #mimeType. – Mdb

Powiązane problemy