Как показать / скрыть текстовое поле на основе выбора в JQuery? - PullRequest
0 голосов
/ 02 марта 2012

У меня есть поле выбора и поле textarea.И я пытаюсь скрыть / показать текстовое поле в функции выбранного типа:

<select id="select" name="management">
    <option value="0" selected="">Select One</option>
    <option value="1">Yes</option>
    <option value="0">No</option>
</select>
<textarea id="textarea" name="searching_gig_des" wrap="VIRTUAL" cols="50" rows="5"></textarea>
​
var textarea = $('textarea');.
var select   = $('#select').val();

textarea.hide();

if (select == '1'){
  textarea.show();
}
if (select == '0'){
  textarea.hide();
}
​

или jsfiddle

Есть идеи?

спасибо

Ответы [ 7 ]

3 голосов
/ 02 марта 2012

У вас есть несколько синтаксических ошибок, плюс вы не связываете change event для select

$('#select').change(function(){

        var textarea = $('textarea');
        var select   = $(this).val();

        textarea.hide();

        if (select == '1'){
          textarea.show();
        }
        if (select == '0'){
          textarea.hide();
        }
});​

jsfiddle

2 голосов
/ 02 марта 2012
$('#select').change(function(){
    var value = $(this).val();
    var textarea = $('textarea');

    if (value == '1'){
        textarea.show();
    }
    if (value == '0'){
        textarea.hide();
    }

});
1 голос
/ 02 марта 2012

Попробуйте:

var textarea = $('textarea');
$('#select').change(function() {
    if ($(".yes:selected").val() == 1) {
        textarea.show();
    }
    else {
        textarea.hide();
    }
});​

http://jsfiddle.net/uMTmm/1/

1 голос
/ 02 марта 2012

Сначала удалите точку (.) после точки с запятой в первой строке var. Затем оберните if в обработчик событий change() и создайте второй if и else if*:

var textarea = $('#textarea');
var select   = $('#select').val();

textarea.hide();

$(select).change(
    function(){
        if (select == 1){
          textarea.show();
        }
        else if (select == 0){
          textarea.hide();
        }
    });

Обновление JS Fiddle .

<ч />
  • Это не строго необходимо. Но для меня это имеет больше смысла, так как два условия связаны между собой. С другой стороны, это также может быть просто else (вместо else if, поскольку на самом деле есть только два варианта).
1 голос
/ 02 марта 2012

В вашем коде jquery есть ошибки.Также вам нужно обработать событие изменения для вашего выбора. Здесь - это обновленный jsfiddle http://jsfiddle.net/uhv5R/6/

1 голос
/ 02 марта 2012

http://jsfiddle.net/uhv5R/5/

Свяжите JS с событием изменения, и у вас также будет дополнительный период.

1 голос
/ 02 марта 2012

Снимите . с var textarea = $('textarea');. и все готово.

Кстати, я полагаю, что вы пытаетесь show/hide textarea на основе раскрывающегося значения onload страницы.

Вам нужно изменить обработчик, как показано ниже, если вы хотите показать / скрыть текстовую область на основе выпадающего списка,

var $select = $('#select');

$select.change(function() {
    var select = $(this).val();
    if (select == '1') {
        textarea.show();
    }
    if (select == '0') {
        textarea.hide();
    }
});
...