В c ++ struct и классы одинаковы, за исключением того, что структуры имеют открытые члены по умолчанию, а классы имеют private. Если вы хотите использовать начальные значения, я думаю, что вы должны написать конструктор или использовать что-то вроде этого:
struct ABC
{
std::string str;
unsigned int id;
} ABC_default = {"init", 0 }; //initial values
int main()
{
ABC abc = ABC_default;
std::cout << abc.str << " " << abc.id << std::endl;
return 0;
}
<select disabled="disabled">
....
</select>
<input type="hidden" name="select_name" value="selected value" />
Где select_name
- это имя, которое вы обычно даете
.
Другой вариант.
<select name="myselect" disabled="disabled">
<option value="myselectedvalue" selected="selected">My Value</option>
....
</select>
<input type="hidden" name="myselect" value="myselectedvalue" />
Теперь с этим. , Я заметил, что в зависимости от того, какой веб-сервер вы используете, вам, возможно, придется поместить ввод hidden
либо до, либо после
.
Если мне не изменяет память мне правильно, с IIS ставишь раньше, с апачем ставишь после. Как всегда, ключевым моментом является тестирование.
Или используйте какой-нибудь JavaScript, чтобы изменить имя выбора и отключить его. Таким образом, выбор все еще будет отправлен, но с использованием имени, которое вы не проверяете.
Отключите поля, а затем включите их перед отправкой формы:
Код jQuery:
jQuery(function ($) {
$('form').bind('submit', function () {
$(this).find(':input').prop('disabled', false);
});
});
Другой вариант - использовать атрибут «только для чтения».
<select readonly="readonly">
....
</select>
В режиме «только для чтения» значение все еще отправляется, поле ввода неактивно, и пользователь не может его редактировать.
Изменить:
Цитируется из http://www.w3.org/TR/html401/interact/forms.html#adef-readonly :
Когда он говорит, что элемент может быть успешным, это означает, что он может быть представлен, поскольку указано здесь: http://www.w3.org/TR/html401/interact/forms.html#successful-controls