2012-04-03 3 views
0

Я получаю недопустимое назначение левой стороны.Неверное назначение левой стороны

Что я пытаюсь сделать, использовать jscolor http://jscolor.com, чтобы определить цвет полигонов im drawing через 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

+0

Что вы хотите достичь с помощью 'color = document.getElementById ('cPick'). Value;'? Что должно сделать ценность атрибута onchange? –

+0

Я хочу получить значение, которое возвращает поле «color». – JoelM

+0

В вашем фрагменте нет поля «color». Не забывайте, что все, что вам нужно, это то, что вы предлагаете. Если нам нужен контекст, укажите контекст. Лучшая ссылка на вашу страницу; может потребоваться больше кода. –

ответ

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

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

+0

Да, но теперь появилась новая ошибка: document.getElementById ('cPick') имеет значение null, но значением по умолчанию для поля является #FFFFFF (белый). – JoelM

+0

создайте скрипку, а затем введите свой код (http://jsfiddle.net), чтобы люди могли понять, что вы пытаетесь сделать. – mpm

+0

PHP необходим для правильного выполнения этого кода, также это только код одного iframe. – JoelM

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

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

Смежные вопросы