2012-04-03 98 views
0

我收到左側無效的任務。左側的分配無效

我想要做的是,使用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

+0

你想用'color = document.getElementById('cPick')。value來實現什麼?這應該是什麼使'onchange'屬性的價值? – 2012-04-03 08:26:18

+0

我想獲取「顏色」字段返回的值。 – JoelM 2012-04-03 08:38:18

+0

片段中沒有「顏色」字段。不要忘記,任何人都必須繼續是你提供的。如果我們需要背景,請提供背景。鏈接到您的網頁是最好的;更多的代碼可能就足夠了。 – 2012-04-03 08:46:50

回答

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

編輯:不知道你正在嘗試做的,因爲顏色是不是一個函數,但它應該停止顯示錯誤的GET。

+0

是的,但現在出現了一個新的錯誤,說document.getElementById('cPick')爲空,但該字段的默認值是#FFFFFF(白色)。 – JoelM 2012-04-03 08:43:32

+0

創建一個小提琴然後把你的代碼在那裏(http://jsfiddle.net),這樣人們就可以理解你在做什麼。 – mpm 2012-04-03 09:02:04

+0

需要PHP才能正確運行此代碼,這也只是單個iframe的代碼。 – JoelM 2012-04-03 09:54:06

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

您應該使用本地變量或用括號括起color = ...語句。這修復了語法錯誤,但它不會爲您提供有效的onchange處理程序。

相關問題