В идеале я хотел бы создать упрощенный интерфейс, который требует от пользователя выбрать одну из трех переключателей, как показано здесь:
<form id="icon-type">
<input type="radio" name="icon" value="apples" /> Apples
<input type="radio" name="icon" value="oranges" /> Oranges
<input type="radio" name="icon" value="graphes" /> Grapes
</form>
Используя jQuery, легко определить, какой из трех был выбран:
var iconType = $('input[name=icon]:checked').val();
Однако мне нужно преобразовать строку, присвоенную iconType, в ранее созданный объект с тем же именем. Я читал, что eval()
- лучший способ сделать это, но также встречал многочисленные предупреждения о том, что никогда не следует использовать eval()
. Однако, кажется, нет другого способа выполнить это преобразование. Таким образом, мой вопрос: хотя я признаю, что eval()
, безусловно, может быть использовано не по назначению, действительно ли это тот случай, когда eval()
действительно подходящий подход?
Мысли очень ценятся!
РЕДАКТИРОВАТЬ: @DVK, спасибо! Все еще немного потерянный все же; предположим, мои объекты выглядят так:
var apple = new GIcon(baseIcon);
apple.image = "http://localhost/images/apple.png";
var orange = new GIcon(baseIcon);
orange.image = "http://localhost/images/orange.png";
Так что мне нужно преобразовать значение, полученное с выбранной радиокнопки, в соответствующую ссылку на объект. Как бы я хранил их в хеше, как вы объясните? Спасибо!