Используйте флажок для установки val () для поля - PullRequest
1 голос
/ 29 июня 2009

Всего N00b здесь, у меня есть мастер длинных форм, для динамического отображения / скрытия которого требуется один шаг в зависимости от переключателя. Пока все классно с кодом.

function checkRb () {
            if($(this).is(":checked")){
            //yes
            $("#do_frick").val("step5");
            //alert ("yeah");
            }else {
            //no
            $("#do_frick").val("submit_step");
            //alert ("no");
            }
            }

Проблема в том, что скрытое поле "#do_frick" находится на несколько шагов ниже по странице. Если я помещу его в тот же div, что и флажок, значения не изменятся. Поместите "#do_frick" дальше вниз по форме, и он не изменится.

Я ожидаю, что $ (this) просматривает только текущий div, а не весь документ. Я добился этого с помощью очень хорошего программиста и не хочу раздражать его вопросами N00b, любая помощь очень ценится:)

Похоже, что если я помещу "#do_frick" в div, который находится ниже страницы, мастер форм устанавливает отображение: none и что-либо внутри div не может быть установлено ... это будет правильно?

Ответы [ 3 ]

1 голос
/ 29 июня 2009

Пожалуйста, просмотрите источник вашей страницы, чтобы проверить, что такое ID скрытого поля, когда оно на несколько шагов вниз . Если идентификатор совпадает, то положение не должно быть проблемой.

это не текущий дел. В обработчиках событий это означает объект, вызвавший событие. Вы должны проверить jquery.com для получения дополнительной информации об этом.

PS: - попробуйте установить значение скрытого поля следующим образом

 $("#do_frick").attr("value","submit_step");
0 голосов
/ 30 июня 2009

ТАК после долгого расчесывания лапши ответ - маленькая ошибка / сбой в jQuery

Всякий раз, когда поле находится в div, у которого есть правило "dsiaply: none;" применил jQuery не могу достать внутрь и изменить его. При проверке с помощью firebug поле имеет дополнительное значение «disabled = ''». Используя команду

$('#do_frick').get(0).disabled = false

Разбирается .. наконец:)

Финальный код:

function checkRb () {
            if($(this).is(":checked")){
            //yes
            $('#do_frick').get(0).disabled = false //The important bit
            $("#do_frick").val("step5");
            //alert ("yeah");
            }else {
            //no
            $("#do_frick").val("submit_step");
            //alert ("no");
            }
            }
0 голосов
/ 29 июня 2009

ищите идентификатор в сгенерированном html, как предложено выше.

Также ищите дубликаты идентификаторов, которыми поделились любые другие элементы, это испортит вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...