2015-05-22 3 views
0

У меня есть две текстовые поля на моей странице, скажем поле1 и поле2. field1 находится между 1 и 12. Когда значение field1 равно 1, только тогда пользователю должно быть разрешено вводить значение в поле2. Опять диапазон field2 находится между 1 и 12.Функция проверки диапазона JQuery

Я хочу добавить проверку диапазона для поля2 на основе значения поля1. В любом случае я могу добавить функцию jQuery, как это.

field2: { 
    range: function(){ 
     if($("#field1").val() == 1){ 
      return "[1,12]"; 
     } 
    } 
} 

Кроме того, как я могу ограничить пользователю вводить любые значения в field2, когда field1 значение не 1.

+2

вы можете предоставить соответствующий HTML или добавить jsfiddle? – kaz

+0

Показать остальную часть соответствующего кода. Не обращая внимания на соответствующую разметку, вы делаете больше работы для людей, которые пытаются вам помочь. – Sparky

+0

Извините, Спарки, да, это была опечатка. Я обновил свой вопрос – Gopal

ответ

0

Ваш код должен работать, если вы исправить три небольшие ошибки ...

  1. Использование .val(), не .val

  2. Использование return [1, 12], не "return [1, 12]"

  3. Использование $('[name="field1"]'), а не $("#field2"). Вы не можете сравнить значение поля с самим собой. Возможно, просто опечатка.

JQuery:

$(document).ready(function() { 

    $('#myform').validate({ 
     rules: { 
      field1: { 
       required: true 
      }, 
      field2: { 
       required: true, 
       range: function() { 
        if ($('[name="field1"]').val() == 1) { 
         return [1, 12]; 
        } 
       } 
      } 
     } 
    }); 

}); 

HTML:

<form id="myform"> 
    <input type="text" name="field1" /> 
    <br/> 
    <input type="text" name="field2" /> 
    <br /> 
    <input type="submit" /> 
</form> 

Рабочая DEMO: http://jsfiddle.net/6000rp0b/

+1

Спасибо Sparky. Это решило мою проблему. – Gopal

+0

@Gopal, пожалуйста. Нажмите зеленую галочку. Благодаря! – Sparky

0

Вы можете посмотреть на двухсторонним связывания библиотеки как Нокаут или Угловое для этого в зависимости насколько тяжело ваше фактическое приложение. Для того, чтобы сделать это только с ванильным Javascript или JQuery вам нужно связать обработчик событий для ваших входных элементов и изменять их свойства в зависимости от обстоятельств, что-то вроде:

$("#field1").on("input", function() { 
    $("#field2").prop("disabled", this.value != 1); // or readonly 
}); 

Если вы хотите разместить HTML и расширить то, что именно вы хотите, чтобы я это сделал, я могу это поиграть.

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