我试图制作这个方法时遇到了很大的问题。我有一个网页,我需要编写一个返回特定属性的编辑器的方法。颜色的方法实现了“来自eyecon.ro的JQUERY Colorpicker”。
private static string GetColorBox(string name, int width, string value)
{
return "<input type=\"text\" maxlength=\"6\" size=\"6\" id=\"colorPickerHolder" + name + "\" value=\"000000\" />" +
"<script type=\"text/javascript\">" +
"$('#colorPickerHolder" + name + "').ColorPicker(" +
"{" +
"onSubmit: function(hsb, hex, rgb, el) " +
"{" +
"$(el).val(hex);" +
"$(el).ColorPickerHide();" +
"}," +
"onBeforeShow: function () " +
"{" +
"$(this).ColorPickerSetColor(this.value);" +
"}" +
"})" +
".bind('keyup', function()" +
"{" +
"$(this).ColorPickerSetColor(this.value);" +
"});" +
"</script>";
}
我有几次调用此方法但在第一次调用后第二次调用时抱怨:
网页错误详情
用户代理:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 5.1; 三叉戟/ 4.0; GTB6; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; InfoPath.1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)时间戳:星期一,2009年11月9日19:35:33 UTC
消息:HTML分析错误:无法修改父容器 子元素关闭之前的元素(KB927917)行:0字符:0 代码:0 URI:http://localhost:1442/Slide/CreateTemplateSlide/33
它呈现的HTML如下所示:
<tr>
<td width="150px" nowrap="nowrap">
Text color:
</td>
<td>
<input type="text" maxlength="6" size="6" id="colorPickerHolderTextColor" value="000000" /><script type="text/javascript">$('#colorPickerHolderTextColor').ColorPicker({onSubmit: function(hsb, hex, rgb, el) {$(el).val(hex);$(el).ColorPickerHide();},onBeforeShow: function () {$(this).ColorPickerSetColor(this.value);}}).bind('keyup', function(){$(this).ColorPickerSetColor(this.value);});</script>
</td>
</tr>
<tr>
<td width="150px" nowrap="nowrap">
Text size:
</td>
<td>
<input name="TextSize" width="5px" type="text" value=""></input>
</td>
</tr>
<tr>
<td width="150px" nowrap="nowrap">
Background color:
</td>
<td>
<input type="text" maxlength="6" size="6" id="colorPickerHolderBackColor" value="000000" ><script type="text/javascript">$('#colorPickerHolderBackColor').ColorPicker({onSubmit: function(hsb, hex, rgb, el) {$(el).val(hex);$(el).ColorPickerHide();},onBeforeShow: function () {$(this).ColorPickerSetColor(this.value);}}).bind('keyup', function(){$(this).ColorPickerSetColor(this.value);});</script>
</td>
我不知道为什么会发生这种情况,任何人都会指出我正确的方向?
答案 0 :(得分:1)
尝试关闭input
代码前的script
代码。
编辑:您可能还想从该调用中删除脚本部分,并创建一个适用于特定类的专用部分。
private static string GetColorBox(string name, int width, string value)
{
return "<input class=\"myParticularColorBoxingClass\" type=\"text\" maxlength=\"6\" size=\"6\" id=\"colorPickerHolder" + name + "\" value=\"000000\" >";
}
EDIT2 :您只需在页面中直接添加脚本即可运行一次。
请你把它放在你的页面里吗?
请务必添加class=\"myParticularColorBoxingClass\"
(请参阅上述方法)。
<script type="text/javascript">
//run this after document has finished loading!
$(document).ready(
function() {
//activate all inputs with "myParticularColorBoxingClass" class
$('input .myParticularColorBoxingClass').ColorPicker(
{
onSubmit: function(hsb, hex, rgb, el)
{
$(el).val(hex);
$(el).ColorPickerHide();
},
onBeforeShow: function ()
{
$(this).ColorPickerSetColor(this.value);
}
})
.bind('keyup', function()
{
$(this).ColorPickerSetColor(this.value);
});
}
);
</script>