2013-09-13 4 views
1

Я разрабатываю веб-сайт, который динамически добавляет некоторые формы (включая флажки) и связанные с ними правила проверки (jquery). ОБНОВЛЕНИЕ (пояснение): Для некоторой проверки я должен добавить методы проверки динамически (после создания связанных полей формы). Проблема связана с кодом проверки для определения того, требуется ли поле или нет. Поле должно быть необходимо, если флажок установлен. Добавленные правила проверки действуют в отношении проверки на «minlength», «maxlength» и «integer», но не на «required». Я думаю, что я понимаю, почему мой код для проверки на «обязательный» не работает (из-за списка), но я не знаю, как исправить этот код ...проверить, установлен ли флажок

(Я рассмотрел связанные темы на этом сайте, а также на http://api.jquery.com/checked-selector/)

Javascript элемент кода для добавления флажок поле формы (с увеличением listitemnr ...):

<input type="checkbox" id="check'+ listitem +'" name="productselection'+ listitem +'" value="' + this.productid[listitem] + '"> 

ОБНОВЛЕНИЕ: код добавления метод проверки, который включает в себя код для проверки флажок:

if ($("#nrofparts"+listitem).length > 0) { //elements exists? 
        //console.log("added VAL: "+listitem); 
        $("#nrofparts"+listitem).rules("add", { 
         required: function(element) {return ($('#check'+listitem).is(':checked'));}, 
         minlength: 1, 
         maxlength: 3, 
         integer:true, 

        } 
       ); //$("#investmentfix"+currindex).rules add 
+0

Что вы хотите с этим 'ид = "проверить "+ ListItem +" и 'имя = "productselection '+ ListItem +'"' в HTML? – Sergio

+0

это просто идентификаторы и имена с увеличивающимися числами (listitem). Флажок предназначен для того, чтобы пользователь мог выбрать (или не выбрать) соответствующий продукт. Еще один код javascript использует id для некоторых вычислений ... Я просто попробовал код проверки «$ ('# check' + listitem) .is (': checked')", но это, похоже, не работает ... – Joppo

ответ

0

Просто попробуйте:

if ($('#check' + listitem).is(':checked')) {} 
0

Вы посмотрите на :checked использование может. Он соответствует всем входным элементам, которые проверяются (кроме select)

if ($('#check' + listitem).is(':checked')) { 
    // your code here. 
} 
0

Вы не используете делегации .он, так что я думаю, вы получаете его как zero.As у сказал, что вы собираетесь динамически загружать некоторые содержимое , всякий раз, когда вы загружаете содержимое на странице динамически, вам нужно использовать .on(), например: $ (''). on ('click', function_name); Код ниже поможет вам.

 var countChecked = function() { 
     var n = $("input:checked").length; 
     $("div").text(n + " checked!"); 
     }; 

     $("input[type=checkbox]").on("click", countChecked); 

Вот скрипка Demo

+0

hnx для всех ваших комментариев. Я попробовал эти предложения, а затем пришел к выводу, что должен был объяснить более широкий контекст. Pls см. Обновленный текст выше. - user2543182 – Joppo

+0

@ user2543182 проголосовать, если вы считаете это полезным. – Gourav

Смежные вопросы