1

我正在使用 MVC4 和 HTML5 来开发我的项目。我声明了选择标签和选项,每个选项都有自己的值。当我选择一个选项时,我可以在警报中看到它的值。

<select name="select" onchange="drawOption(this)">
    <option value="">--- Cizgi Tipi Seçiniz ---</option>
    <option value="">--- Basit Semboller ---</option>
    <option value="new esri.symbol.SimpleMarkerSymbol();">Default</option>
    <option value="new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID,new dojo.Color([210, 105, 30, 0.5]), 8), new dojo.Color([210, 105, 30, 0.9]))" >Square</option>
</select>

在 JavaScript 中,我想使用这个值来创建对象并分配给 var 变量。相关函数(不是drawOption函数,addGraphic函数是在某些函数之后触发的):

function addGraphic(pt) {
    var idx = element.selectedIndex;
    alert(element.options[idx].value);
    var symbol = element.options[idx].value;
    // var symbol = new esri.symbol.SimpleMarkerSymbol(esri.symbol.SimpleMarkerSymbol.STYLE_SQUARE, 10, new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_SOLID, new dojo.Color([210, 105, 30, 0.5]), 8),
    //new dojo.Color([210, 105, 30, 0.9]));
    graphic = new esri.Graphic(pt, symbol);
    map.graphics.add(graphic);
}

在警报中,我可以看到价值。但是,它不会分配给符号变量。我认为,它将它分配为字符串,所以我不能创建新对象。

如何解决这个问题?

4

1 回答 1

0

我看不到在哪里element定义,所以很难说。我认为您正在为 分配一个字符串symbol,即"new esri.symbo....".

也许使用eval (...)会有所帮助?(注意安全问题!)

问候,诺比

于 2013-09-09T10:06:02.860 回答