Отключить поле выбора, не удаляя значение из сообщения - PullRequest
1 голос
/ 26 мая 2009

В моем текущем проекте asp.net-mvc одна из моих страниц позволяет пользователю выбрать значение в раскрывающемся списке после выполнения запроса на публикацию, который обновляет несколько значений. Чтобы задержка постбэка не смутила пользователя в выборе другого значения (и, таким образом, в создании другого поста, создании еще одной задержки и т. Д.), Я установил для атрибута disabled значение true.
Однако отключенные входные данные не отправляются на пост-вызов.

Как я могу сделать визуально понятным пользователю, что работа выполняется, и сделать невозможным выбор нового значения, не удаляя ввод из поста?

Ответы [ 3 ]

1 голос
/ 26 мая 2009

Судя по вашему ответу, вы уже используете jQuery. В таком случае, почему бы вам не получить значение поля выбора, отключить его, а затем опубликовать значение самостоятельно?

Бонус: BlockUI - это хороший плагин jQuery для блокировки пользовательского интерфейса.

1 голос
/ 26 мая 2009

Да, это меня тоже раздражает.

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

На самом деле я нашел то, что кажется дубликатом этого на Проблема с отключением кнопок отправки в форме отправки .

0 голосов
/ 26 мая 2009

Ни один из ответов, которые я нашел в посте Cletus, не был полностью тем, что я искал.
Вот что я придумал. Его нельзя использовать на 100%, но он делает то, что мне нужно, и не стесняйтесь улучшать / редактировать.

$('#productMixSelectorForm').change(function() { $(this).ChangeSelection() });

jQuery.fn.ChangeSelection = function() {
    var html = $('<div class="hidden">');
    $(this).find('select, input').each(function() {
        if ($(this).hasClass('hidden') == false) {
            //Clone the original one into the hidden div
            html.append($(this).clone());
            //Disable the original (visible) one and make it's name unique again
            $(this).attr("disabled", true);
            var name = $(this).attr("name");
            $(this).attr("name", name + "disabledDummy");
        }
    });    
    //Add the collection of clones to the form so they get submitted
    $(this).append(html);
    $(this).submit();
}
...