Флажок «Отключено» отмечен как непроверенный - ASP.NET - PullRequest
8 голосов
/ 10 марта 2009

У меня есть флажок ввода, который устанавливается и отключается, когда некоторые JS запускаются при загрузке страницы.

<input name="selectUnionDues" id="selectUnionDues"  type="checkbox" checked="checked" runat="server" />

Когда я получаю значение флажка с помощью (на стороне сервера)

this.selectUnionDues.checked //returns false

Я всегда получаю ложное

РЕДАКТИРОВАТЬ: Я обеспокоен использованием тяжелых элементов управления asp.net, так как размер страницы в этом приложении должен быть низким. Есть ли выход с использованием элементов управления HTMl?

Ответы [ 6 ]

11 голосов
/ 10 марта 2009

Отключенные элементы управления формой не являются " успешными элементами управления ", это означает, что их значения вообще не "отправляются" с вашей формой.

3 голосов
/ 15 января 2010

проверить это http://www.4guysfromrolla.com/articles/012506-1.aspx

Короче говоря, (1) существует свойство "SubmitDisabledControls" формы "или (2) настроить javascript, предоставленный автором

1 голос
/ 30 июля 2012

Если вы отключите флажок, он всегда возвращает ложь. Лучше всего сделать флажок доступным только для чтения, чтобы он возвращал значение как есть. сделать readonly="readonly".

0 голосов
/ 20 января 2013

Хотя первоначальный вопрос касался элемента управления HtmlInputCheckBox, я думаю, что было бы полезно упомянуть, что аналогичная проблема существует и для элемента управления Checkbox, для которого изображение более сложное, поскольку существует разница между Enabled = "False" и отключенным = "отключено". Я публикую результаты исследования здесь: ASP.Net Checkbox.Checked устанавливается по умолчанию, когда используется атрибут disabled или разница между свойством Enabled и атрибутом disabled . В частности, это объясняет, почему свойство Checked сбрасывается при использовании атрибута disabled, и почему оно не сбрасывается при использовании свойства сервера Enabled.

0 голосов
/ 10 марта 2009

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

0 голосов
/ 10 марта 2009

Я получаю менее интуитивное поведение. Если я проверяю значение в Page_Init, оно всегда возвращает true. Тестирование в Page_Load возвращает выбранное значение.

Попробуйте использовать серверный элемент управления вместо HTML-элемента управления с runat = server.

<asp:CheckBox ID="selectUnionDues" runat="server" Checked="true" />

Кроме того, вы указали «отключенный» элемент управления, но я не вижу ничего, что отключено в вашей разметке. В любом случае, лучше использовать сервер WebControl.

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