我的左侧分配无效。

我正在尝试使用jscolor http://jscolor.com定义通过Mapbender http://mapbender.org绘制的多边形的颜色。

我的工作:通过单击选择一个多边形,然后打开选项对话框(单独的窗口),其中有包括颜色在内的多个选项。

我的代码:

        if (isTransactional) {str += "\t\t<tr>\n";
        var options = ["insert", "update", "delete", "abort", "pick"];
        for (var i = 0 ; i < options.length ; i++) {
            var onClickText = "this.disabled=true;var result = window.opener.formCorrect(document, '"+featureTypeElementFormId+"');";
            onClickText +=  "if (result.isCorrect) {";
            onClickText +=      "window.opener.dbGeom('"+options[i]+"', "+memberIndex+"); ";
//              onClickText +=      "window.close();";
                onClickText +=  "}";
            onClickText +=  "else {";
            onClickText +=      "alert(result.errorMessage);this.disabled=false;"
            onClickText +=  "}";
if (options[i] == "insert" && hasGeometryColumn && (!fid || showSaveButtonForExistingGeometries)) {
                str += "\t\t\t<td><input type='button' name='saveButton' value='"+msgObj.buttonLabelSaveGeometry+"' onclick=\""+onClickText+"\" /></td>\n";
            }
if (!featureTypeMismatch && fid) {
                if (options[i] == "update" && hasGeometryColumn) {
                    str += "\t\t\t<td><input type='button' name='updateButton' value='"+msgObj.buttonLabelUpdateGeometry+"' onclick=\""+onClickText+"\"/></td>\n";
                }
if (options[i] == "delete"){
                    var deleteOnClickText = "var deltrans = confirm('"+msgObj.messageConfirmDeleteGeomFromDb+"');";
                    deleteOnClickText += "if (deltrans){";
                    deleteOnClickText += onClickText + "}";
                    str += "\t\t\t<td><input type='button' name='deleteButton' value='"+msgObj.buttonLabelDeleteGeometry+"' onclick=\""+deleteOnClickText+"\"/></td>\n";
                }}
if (options[i] == "abort") {
                str += "\t\t\t<td><input type='button' name='abortButton' value='"+msgObj.buttonLabelAbort+"' onclick=\"window.close();\" /></td>\n";
            }
if (options[i] == "pick") {
                var color;
                str += "<td><input class='color' name='color' id='cPick' onchange="+color+"></td>";
                str += "<td><input type='text' id='text' value="+color+"></td>";
                //color = document.getElementById('cPick').value;
                //var color2 = color;
                //alert(color2);
            }
        }str += "\t\t</tr>\n";}str += "\t</table>\n";str += "<input type='hidden' id='fid' value='"+fid+"'>";
//str += "<input type='text' name='mb_wfs_conf'>";


    str += "</form>\n";}return str;}


应用程序:

这是一个Mapbender应用程序,用于显示地图并在其上绘制。您可以绘制点,线和面,也可以合并和分割它们。
您也可以选择绘制的多边形来更改它们。

使用:
PHP,JavaScript,HTML,CSS,Mapbender,jQuery,Geoserver,PostgreSQL,WMS,WFS-T

最佳答案

我很确定是因为这个;

 str += "<td><input class='color' name='color' id='cPick' onchange=" + color = document.getElementById('cPick').value; + "></td>";


做就是了

var color = document.getElementById('cPick').value;

 str += "<td><input class='color' name='color' id='cPick' onchange=" + color + "></td>";


编辑:不知道您要做什么,因为颜色不是函数,但是它应该停止显示您得到的错误。

09-11 18:29