2013-02-14 2 views
0

Я написал эту функцию jquery и хочу работать отдельно.Функция jquery Option должна работать отдельно

$(function(){ 
    $('.otherreason').hide(); 
    $('.inqPurpose').change(function() { 
     if($(this).find('option:selected').val() == "Other"){ 
      $('.otherreason').show(); 
     }else{ 
      $('.otherreason').hide(); 
     } 
    }); 
}); 

Этот HTML код повторяют до 4 раз в виде тега, и когда я нажимаю любого другого поля параметра все HTML работают вместе, и я хочу работать отдельно

<select class="inqPurpose formField" name="how2" id="how2"> 
    <option>Sales</option> 
    <option>Services</option> 
    <option>Corporate Partnership</option> 
    <option>Corporate Trade Show</option> 
    <option>Requesting Product Samples for Trade Show or Event</option> 
    <option>Website Feedback</option> 
    <option value="Other">Other (Please Specify)</option> 
</select> 

<input class="formField otherreason" type="text" placeholder="Other Reason" size="53" maxlength="300" /> 
+0

Являются ли каждая пара '.inqPurpose' и' .otherreason' сгруппированы в общий элемент упаковки? – Alexander

ответ

2

Если у вас есть другая причина, сразу после того, выберите вариант вы можете использовать .nextAll() и найти первый класс otherreason

$(function(){ 
    $('.otherreason').hide(); 
    $('.inqPurpose').change(function() { 
     if($(this).val() == "Other"){ 
       $(this).nextAll('.otherreason:first').show(); 
     }else{ 
      $(this).nextAll('.otherreason:first').hide(); 
     } 
    }); 
}); 

скрипку демо здесь http://jsfiddle.net/kgPaY/1/

+1

Наверное, это не касается проблемы :) – Alexander

+0

@Alexander обновил, я слишком быстро прочитал вопрос – Anton

+0

Теперь он выглядит лучше – Alexander