2014-11-03 3 views
0

У меня есть два переключателя и текстовый ввод. Я хочу, чтобы один из радиостанций, необходимых для ввода текста, был затем проверен. Я могу отключить текстовое поле ввода, если оно не выбрано, но я думаю, что было бы более интуитивно понятно, чтобы разрешить ввод текста в первую очередь, и только ошибка, если они также не выбирают радио.Проверка JQuery - переключатель для ввода текста

Форма возвращает мне ошибку, требуемую радиоприемниками, но я не хочу, чтобы удаленная проверка срабатывала, если не выбрана одна из переключателей.

Итак, вот что у меня есть ...
JQuery:

jQuery("#modalform").validate({ 
    onkeyup: false, 
    onfocusout: false, 
    rules: { 
     'register_domain[]': { 
      required: true    
     }, 
     chosen_domain: { 
      required: true, 
      minlength: 4, 
      remote: { 
       url: "check.php", 
       type: "post", 
       data: { 
        register_domain: function() { 
         return jQuery('input[name="register_domain[]"]'); 
        } 
       } 
      } 
     } 
     }, 
    messages: { 
     'register_domain[]': { 
      required: "Choose one" 
     }, 
     chosen_domain: { 
      required: "Required input", 
      minlength: jQuery.validator.format("Please, at least {0} characters are necessary"), 
      remote: jQuery.validator.format("Invalid domain name: {0}") 
     } 
    } 
}); 

поля формы:

<label class="radio-inline"> 
    <input type="radio" name="register_domain[]" id="own_domain" value="owned"> Own Domain 
</label> 
<label class="radio-inline"> 
    <input type="radio" name="register_domain[]" id="new_domain" value="new"> Register Domain 
</label> 
<label for="register_domain[]" class="error" style="display:none;">Please choose one.</label> 
<input type="text" size="50" placeholder="www." id="inputDomain" name="chosen_domain" class="form-control required" required="required"> 
+0

Главный вопрос: что не работает? –

+0

Что не работает, так это то, что удаленный метод активируется, хотя переключатели не были выбраны. –

ответ

2

Цитата OP:

«Я не хочу, чтобы удаленная проверка срабатывала, если не выбрана одна из переключателей».

Вы можете использовать the rules('add') and rules('remove') methods для переключения remote правила внутри внешнего change обработчика ...

$('input[name="register_domain[]"]').on('change', function() { 
    if ($(this).val() == "owned") { 
     $('input[name="chosen_domain"]').rules('remove', 'remote'); 
    } else { 
     $('input[name="chosen_domain"]').rules('add', { 
      remote: { 
       url: "check.php", 
       type: "post", 
       data: { 
        register_domain: function() { 
         return jQuery('input[name="register_domain[]"]'); 
        } 
       } 
      } 
     }); 
    } 
}); 
+0

Спасибо Спарки, я попробую это, как только вернусь к компьютеру. –

+0

@JamesShaver, он искусно, :) его код будет работать наверняка :) –

+0

Работает отлично, спасибо! –

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