мы можем запустить JavaScript с отключенным рендерингом? - PullRequest
0 голосов
/ 28 октября 2011

Контекст

Я работаю над довольно сложной структурой веб-сайта, которая включает в себя множество манипуляций на стороне клиента с динамическим интерфейсом, доступным для переключения на лету (много кода выполняется при загрузке и выгрузке страницы). *

Мне нужно иметь возможность на лету изменять отключенное состояние многих входов (или только для чтения, если они доступны) различных типов.

Проблема

Базовая структура многих типов ввода HTML-форм испорчена (по крайней мере, очень непоследовательна), и в сочетании с сервером, на котором работает asp.net, это становится еще более странным.

Точнее говоря, как некоторые из вас знают, выполнение disabled = "true" для любого ввода убьет обратную передачу, поскольку она фактически не публикуется при отправке формы.

Возможное решение

на странице выгрузки. Я могу довольно легко удалить отключенное состояние каждого элемента управления, который его использует ... это решает проблему "целостности данных" ...

Но есть БОЛЬШАЯ оговорка:

Весь дисплей мигает, когда выгрузка прекращается (поскольку все элементы управления мгновенно возвращаются к включенным), а затем страница остается в состоянии ниже номинального, пока сервер отвечает.

Вопрос убийцы

существует ли способ запуска событий onbeforeunload или unload таким образом, чтобы любые манипуляции с DOM не обновлялись на экране?

ИЛИ есть ли способ для визуальных элементов показать элемент управления AS , если он отключен, но все еще фактически отправлен на сервер?

ИЛИ у кого-нибудь есть идеи, которые могут подтолкнуть меня к решению?

спасибо заранее!

[Изменить] У меня есть шанс поддержать только хром, так что это может открыть пути решения для некоторых из вас хромовых гениев.

Ответы [ 2 ]

4 голосов
/ 28 октября 2011

Во время публикации формы у вас также может быть вторая скрытая форма (скрытая с отображением: нет). Она может присутствовать на исходной странице или динамически создаваться с помощью JS. Ни один из предметов во 2-й форме не отключен. После отправки вы затем копируете значения из исходной формы во 2-ю форму и отправляете вторую форму. Вы никогда не изменяете ничего видимого, поэтому на экране ничего не меняется. Вы можете использовать отключить все, что вы хотите в презентации, но по-прежнему получать все значения, отправленные на сервер после отправки из 2-й копии формы.

1 голос
/ 28 октября 2011

Не снимайте блокировку при выгрузке, делайте это при отправке формы, а также это disabled только не disabled="true".

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