0

私はこの jquery 関数を作成しましたが、個別に作業したいと考えています。

$(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" />
4

1 に答える 1

2

select オプションの直後に他の理由がある場合は、 .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/

于 2013-02-14T12:51:21.773 に答える