我的左手边无效。
我要做的是,使用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 :(得分: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
处理程序。