Hi,Jeremy
Just after my last mail, I check the new dojo 1.2.1 and pack it to jar . The
error is still about onkey,but this time I found the problem.
>From dojo 1.2 the dijit.form.ValidationTextBox source has change its code
from "onkeyup:_onkeyup" to "onkeyup:_update",you have 6 files affected by
this.
And the dijit.form.TextBox remove "onkeyup".TextArea.js is affected by this.
I change these 7 files and now your version is under dojo 1.2.1 !The
attachment file is patch, you could try it, hope it help.
And after doing this ,I found my encoding problem is a bit different. My
change works under IE and Google chrome, but not under FF 3. because chrome
is using M$'s IE component, the encoding problem maybe IS a IE problem only.
Regards,
Roy Huang
### Eclipse Workspace Patch 1.0
#P dojo1_1
Index:
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/DateTimeField.js
===================================================================
---
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/DateTimeField.js
(revision 713288)
+++
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/DateTimeField.js
(working copy)
@@ -60,7 +60,7 @@
dojo.declare("cocoon.forms.DateTimeField", [dijit.form._DateTimeTextBox,
cocoon.forms._FormattingFieldMixin, cocoon.forms._SizedFieldMixin], {
// adding a place for the status marker to dijit.form.ValidationTextBox's
template
- templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_onkeyup,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
+ templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_update,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
// Widget interface
postMixInProperties: function() {
Index:
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/TextArea.js
===================================================================
--- src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/TextArea.js
(revision 713288)
+++ src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/TextArea.js
(working copy)
@@ -39,6 +39,6 @@
rows: "",
cols: "",
- templateString:"<textarea class=\"dijit dijitReset dijitLeft\"
dojoAttachPoint='textbox,focusNode,containerNode'
name=\"${name}\"\n\tdojoAttachEvent='onmouseenter:_onMouse,onmouseleave:_onMouse,onfocus:_onMouse,onblur:_onMouse,onkeypress:_onKeyPress,onkeyup'>"
+ templateString:"<textarea class=\"dijit dijitReset dijitLeft\"
dojoAttachPoint='textbox,focusNode,containerNode'
name=\"${name}\"\n\tdojoAttachEvent='onmouseenter:_onMouse,onmouseleave:_onMouse,onfocus:_onMouse,onblur:_onMouse,onkeypress:_onKeyPress'>"
});
Index:
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/ValidatingTextField.js
===================================================================
---
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/ValidatingTextField.js
(revision 713288)
+++
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/ValidatingTextField.js
(working copy)
@@ -36,6 +36,6 @@
/* TODO: more fieldTypes: email, creditcard, uri etc. etc. */
// adding a place for the status marker to dijit.form.ValidationTextBox's
template
- templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_onkeyup,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n"
+ templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_update,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n"
});
Index:
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/TimeFieldjs
===================================================================
--- src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/TimeFieldjs
(revision 713288)
+++ src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/TimeFieldjs
(working copy)
@@ -39,7 +39,7 @@
dojo.declare("cocoon.forms.TimeField", [dijit.form.TimeTextBox,
cocoon.forms._FormattingFieldMixin, cocoon.forms._SizedFieldMixin], {
// adding a place for the status marker to dijit.form.ValidationTextBox's
template
- templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_onkeyup,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
+ templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_update,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
// Widget interface
postMixInProperties: function() {
Index:
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/NumberField.js
===================================================================
---
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/NumberField.js
(revision 713288)
+++
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/NumberField.js
(working copy)
@@ -53,7 +53,7 @@
valueType: "number", // integer|long|float|double|number|percent
// adding a place for the status marker to dijit.form.ValidationTextBox's
template
- templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_onkeyup,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
+ templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_update,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
// TODO: don't clear invalid entries ???
Index:
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/ValidatingTextArea.js
===================================================================
---
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/ValidatingTextArea.js
(revision 713288)
+++
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/ValidatingTextArea.js
(working copy)
@@ -37,7 +37,7 @@
cols: "",
// adding a place for the status marker to dijit.form.ValidationTextBox's
template
- templateString:"<div style=\"width:auto;\" class=\"dijit dijitReset
dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><textarea style=\"background:
transparent\" class=\"dijitReset\" dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_onkeyup,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
+ templateString:"<div style=\"width:auto;\" class=\"dijit dijitReset
dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><textarea style=\"background:
transparent\" class=\"dijitReset\" dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_update,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
validator: function(value, constraints){
return (new RegExp("^(" + this.regExpGen(constraints) +
")"+(this.required?"":"?")+"$", "m")).test(value) &&
Index:
src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/DateFieldjs
===================================================================
--- src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/DateFieldjs
(revision 713288)
+++ src/blocks/forms/resources/org/apache/cocoon/forms/resources/js/DateFieldjs
(working copy)
@@ -36,7 +36,7 @@
dojo.declare("cocoon.forms.DateField", [dijit.form.DateTextBox,
cocoon.forms._FormattingFieldMixin, cocoon.forms._SizedFieldMixin], {
// adding a place for the status marker to dijit.form.ValidationTextBox's
template
- templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_onkeyup,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
+ templateString:"<div class=\"dijit dijitReset dijitInlineTable
dijitLeft\"\n\tid=\"widget_${id}\"\n\tdojoAttachEvent=\"onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse\"
waiRole=\"presentation\"\n\t><div style=\"overflow:hidden;\"\n\t\t><div
class=\"dijitReset dijitValidationIcon\"><br></div\n\t\t><div
class=\"dijitReset
dijitValidationIconText\">${_cforms_statusMarker}</div\n\t\t><div
class=\"dijitReset dijitInputField\"\n\t\t\t><input class=\"dijitReset\"
dojoAttachPoint='textbox,focusNode'
dojoAttachEvent='onfocus:_update,onkeyup:_update,onblur:_onMouse,onkeypress:_onKeyPress'
autocomplete=\"off\"\n\t\t\ttype='${type}'
name='${name}'\n\t\t/></div\n\t></div\n></div>\n",
// Widget interface
postMixInProperties: function() {