Неверное назначение левой стороны - PullRequest
0 голосов
/ 03 апреля 2012

Я получаю неверное назначение слева.

Я пытаюсь использовать 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 ]

2 голосов
/ 03 апреля 2012

Я почти уверен, что из-за этого;

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

edit: не знаю, что вы пытаетесь сделать, так как цвет не является функцией, но он должен перестать отображать ошибку, которую вы получаете.

1 голос
/ 03 апреля 2012
str += "<td><input class='color' name='color' id='cPick' onchange=" + 
    color = document.getElementById('cPick').value; + "></td>";
                                                  ^
                         Syntax error here -------+

Вы должны либо использовать локальную переменную, либо заключить оператор color = ... в круглые скобки.Это исправляет синтаксическую ошибку, но не даст вам действительный обработчик onchange.

...