左侧无效的分配

时间:2012-04-03 08:22:53

标签: javascript colors field variable-assignment

我的左手边无效。

我要做的是,使用jscolor http://jscolor.com来定义通过Mapbender http://mapbender.org绘制的多边形的颜色。

我的所作所为:点击它选择一个多边形,然后打开选项对话框(单独的窗口),我有几个选项,包括颜色。

mycode的:

        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

2 个答案:

答案 0 :(得分:2)

我很确定是因为那个;

 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>";

编辑:不知道你要做什么,因为颜色不是一个功能,但它应该停止显示你得到的错误。

答案 1 :(得分:1)

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

您应该使用局部变量或将color = ...语句括在括号中。这修复了语法错误,但它不会为您提供有效的onchange处理程序。