Установка значения ''
не работает во всех браузерах.
Вместо этого попробуйте установить значение на null
следующим образом:
document.getElementById('your_input_id').value= null;
EDIT: я получаю очень обоснованные причины безопасности, которые не позволяют JS устанавливать входной файл, однако представляется разумным предоставить простой механизм для очистки уже выбора вывода. Я попытался использовать пустую строку, но она не работала во всех браузерах, NULL
работал во всех браузерах, которые я пробовал (Opera, Chrome, FF, IE11 + и Safari).
EDIT: Обратите внимание, что настройка NULL
работает во всех браузерах при установке на пустую строку.
Когда я отображаю перечисление, и это перечисление имеет отступающее значение типа 'интервал', я просто отображаю свое перечислимое свойство на международное поле в базе данных. Я не столкнулся с проблемами для этого.
Я сделал это для перечислений флага также, и это просто работает без проблем. При объединении определенных флагов NHibernate сохранит 'комбинацию' тех флагов в указанный столбец в базе данных.
При получении экземпляра, который имеет свойство 'перечислений флага', затем NHibernate воссоздаст его назад к корректной комбинации.
Например, если DB будет содержать '3', то NHibernate заполнит Ваше свойство с комбинацией соответствующих значений.
На самом деле я позволяю NHibernate понять это совершенно один:
<property name="OnCallType" column="OnCallType" />
где столбец OnCallType имеет интервал типа в моем DB, и свойство OnCallType является перечислимым типом, который имеет атрибут флагов.
Это не отвечает на Ваш вопрос точно, но могло бы быть легче использовать свойство Int32 в Вашем классе и отображении, и использовать статический класс констант как это для обработки значений в коде:
public static class Permissions
{
public const int CanComment = 0x1;
public const int CanEdit = 0x2;
public const int CanDelete = 0x4;
public const int CanRemoveUsers = 0x8;
public const int All = CanComment | CanEdit | CanDelete | CanRemoveUsers;
}
Я знаю, что это не идеально, так как это не ограничивает Ваших пользователей фиксированными перечислимыми значениями и вынуждает Вас иметь дело с сырыми данными ints в коде, но я думаю, в спящем режиме, испытает затруднения из-за поразрядного перечисления. Это попытается отобразить значение в базе данных назад к определенному перечислению значений. Если это найдет значение в базе данных, которая Вы явно не перечислили его, то будет, вероятно, дросселировать. Например, если это найдет "3" в базе данных, то это не сможет отобразить его назад на перечисление значений, если Вы явно не перечислите каждую комбинацию, как CanCommentAndEdit, CanCommentAndEditAndDelete, и т.д. Это, вероятно, побеждает цель использовать поразрядное перечисление.
Я думаю, что наилучший вариант для этого состоял бы в том, чтобы использовать Пользовательский Пользовательский Тип . В котором Вы могли отобразить Перечисление в своем классе к тем двум столбцам. Вот пример использования ICompositeUserMap, который может использоваться в качестве руководства:
, Хотя в Вашем случае, просто реализовав IUserType мог быть достаточным.
У меня были бы частное международное поле для персистентности NHibernate и общедоступное свойство Getter/Setter для перечисления флага, которые читают и пишут в международное поле. (NHibernate может быть настроен для работы с частными полями),
Тем путем Вы не должны обращаться к вуду волшебные или грязные константы, чтобы сделать задание.