alexb
07-21-2007, 07:19 AM
1. It's possible to select text in IE6, but not in FF
2. It's possible to enter 00.
3. When maxValue is not specified and grow: false, something grows around the field (table cell??) when a large number is entered, i.e. 123456789654321654.....
4. A field returns '' when it's value is 0
In the example below (the 2nd row): change 0 to 1 in the 1st field, then change 0 to 1 in the 2nd field
<FORM action='' method=post>
<DIV id=content>
<STYLE>TABLE {
WIDTH: 100%
}
TABLE CAPTION {
FONT-WEIGHT: bold; TEXT-ALIGN: center
}
.t {
PADDING-RIGHT: 5px; PADDING-LEFT: 5px
}
TD INPUT {
WIDTH: 50%; TEXT-ALIGN: right
}
TR.a {
BACKGROUND-COLOR: #fff
}
TR.b {
BACKGROUND-COLOR: #fafafa
}
TD.gc {
WIDTH: 100px; TEXT-ALIGN: center
}
TH.gc {
WIDTH: 100px; TEXT-ALIGN: center
}
</STYLE>
<DIV class=listcontrol>
<DIV class=inner>
<TABLE class=collapsedBorder rules=rows align=center>
<CAPTION>c1c1 can can can can can can can can can can can can can can can can
can </CAPTION>
<THEAD>
<TR>
<TH class=t>ID</TH>
<TH class=t>name</TH>
<TH class=gc noWrap>Gr 1</TH>
<TH class=gc noWrap>Gr 2</TH>
<TH class=gc>Gr</TH>
<TH class=t></TH></TR></THEAD>
<TBODY>
<TR class=a>
<TD class=t width=30>07BD001</TD>
<TD class=t noWrap>07BD001 0. 0. </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl01_txtGrade 1 value=1
name=ctl00$ContentPane$ctl00$rptItems$ctl01$txtGra de1> </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl01_txtGrade 2 value=2
name=ctl00$ContentPane$ctl00$rptItems$ctl01$txtGra de2> </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl01_txtGrade 3 value=3
name=ctl00$ContentPane$ctl00$rptItems$ctl01$txtGra de3> </TD>
<TD class=t width=30><SPAN class=total>30</SPAN> </TD></TR>
<TR class=b>
<TD class=t width=30>07BD002</TD>
<TD class=t>07BD002 0. 0. </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl02_txtGrade 1 value=0
name=ctl00$ContentPane$ctl00$rptItems$ctl02$txtGra de1> </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl02_txtGrade 2 value=0
name=ctl00$ContentPane$ctl00$rptItems$ctl02$txtGra de2> </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl02_txtGrade 3 value=0
name=ctl00$ContentPane$ctl00$rptItems$ctl02$txtGra de3> </TD>
<TD class=t width=30><SPAN class=total>30</SPAN>
</TD></TR></TBODY></TABLE></DIV></DIV>
<SCRIPT type=text/javascript>
addNamespace("ASoft.Instructor");
ASoft.Instructor.Grades = function(){
var items = [];
var locked = false;
var gradingType = 4;
return {
init : function(){
Ext.each(
Ext.query('input.gr'),
this.setFields,
this
);
},
getDisabledState : function(index){
if(locked){
return true;
}else{
if(gradingType==4){
return false;
}
if(index==gradingType-1){
return false;
}
}
return true;
},
setFields : function(item, index, arr){
var field = new Ext.form.NumberField({
grow: false,
//maxValue: 100,
minValue : 0,
readOnly : this.getDisabledState(index%3),
disabled :this.getDisabledState(index%3),
value : parseFloat(item.value),
allowBlank:false,
allowDecimals : true,
allowNegative : false
});
field.on("change", this.onchange, this);
field.applyTo(item);
items.push(field);
return true;
},
onchange : function(f, newValue, oldValue){
var index = items.indexOf(f);
var pos = index%3;
var sum = newValue;
switch(pos){
case 0:
sum += items[index+1].getValue() + items[index+2].getValue();
break;
case 1:
//alert(items[index-1].getValue());
//alert(items[index+0].getValue());
alert('3 ' + items[index+1].el.id);
sum += items[index-1].getValue() + items[index+1].getValue();
break;
case 2:
sum += items[index-1].getValue() + items[index-2].getValue();
break;
}
alert(sum);
}
};
}();
Ext.onReady(ASoft.Instructor.Grades.init, ASoft.Instructor.Grades, true);
</SCRIPT>
</DIV>
</FORM>
2. It's possible to enter 00.
3. When maxValue is not specified and grow: false, something grows around the field (table cell??) when a large number is entered, i.e. 123456789654321654.....
4. A field returns '' when it's value is 0
In the example below (the 2nd row): change 0 to 1 in the 1st field, then change 0 to 1 in the 2nd field
<FORM action='' method=post>
<DIV id=content>
<STYLE>TABLE {
WIDTH: 100%
}
TABLE CAPTION {
FONT-WEIGHT: bold; TEXT-ALIGN: center
}
.t {
PADDING-RIGHT: 5px; PADDING-LEFT: 5px
}
TD INPUT {
WIDTH: 50%; TEXT-ALIGN: right
}
TR.a {
BACKGROUND-COLOR: #fff
}
TR.b {
BACKGROUND-COLOR: #fafafa
}
TD.gc {
WIDTH: 100px; TEXT-ALIGN: center
}
TH.gc {
WIDTH: 100px; TEXT-ALIGN: center
}
</STYLE>
<DIV class=listcontrol>
<DIV class=inner>
<TABLE class=collapsedBorder rules=rows align=center>
<CAPTION>c1c1 can can can can can can can can can can can can can can can can
can </CAPTION>
<THEAD>
<TR>
<TH class=t>ID</TH>
<TH class=t>name</TH>
<TH class=gc noWrap>Gr 1</TH>
<TH class=gc noWrap>Gr 2</TH>
<TH class=gc>Gr</TH>
<TH class=t></TH></TR></THEAD>
<TBODY>
<TR class=a>
<TD class=t width=30>07BD001</TD>
<TD class=t noWrap>07BD001 0. 0. </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl01_txtGrade 1 value=1
name=ctl00$ContentPane$ctl00$rptItems$ctl01$txtGra de1> </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl01_txtGrade 2 value=2
name=ctl00$ContentPane$ctl00$rptItems$ctl01$txtGra de2> </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl01_txtGrade 3 value=3
name=ctl00$ContentPane$ctl00$rptItems$ctl01$txtGra de3> </TD>
<TD class=t width=30><SPAN class=total>30</SPAN> </TD></TR>
<TR class=b>
<TD class=t width=30>07BD002</TD>
<TD class=t>07BD002 0. 0. </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl02_txtGrade 1 value=0
name=ctl00$ContentPane$ctl00$rptItems$ctl02$txtGra de1> </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl02_txtGrade 2 value=0
name=ctl00$ContentPane$ctl00$rptItems$ctl02$txtGra de2> </TD>
<TD class=gc><INPUT class=gr
id=ctl00_ContentPane_ctl00_rptItems_ctl02_txtGrade 3 value=0
name=ctl00$ContentPane$ctl00$rptItems$ctl02$txtGra de3> </TD>
<TD class=t width=30><SPAN class=total>30</SPAN>
</TD></TR></TBODY></TABLE></DIV></DIV>
<SCRIPT type=text/javascript>
addNamespace("ASoft.Instructor");
ASoft.Instructor.Grades = function(){
var items = [];
var locked = false;
var gradingType = 4;
return {
init : function(){
Ext.each(
Ext.query('input.gr'),
this.setFields,
this
);
},
getDisabledState : function(index){
if(locked){
return true;
}else{
if(gradingType==4){
return false;
}
if(index==gradingType-1){
return false;
}
}
return true;
},
setFields : function(item, index, arr){
var field = new Ext.form.NumberField({
grow: false,
//maxValue: 100,
minValue : 0,
readOnly : this.getDisabledState(index%3),
disabled :this.getDisabledState(index%3),
value : parseFloat(item.value),
allowBlank:false,
allowDecimals : true,
allowNegative : false
});
field.on("change", this.onchange, this);
field.applyTo(item);
items.push(field);
return true;
},
onchange : function(f, newValue, oldValue){
var index = items.indexOf(f);
var pos = index%3;
var sum = newValue;
switch(pos){
case 0:
sum += items[index+1].getValue() + items[index+2].getValue();
break;
case 1:
//alert(items[index-1].getValue());
//alert(items[index+0].getValue());
alert('3 ' + items[index+1].el.id);
sum += items[index-1].getValue() + items[index+1].getValue();
break;
case 2:
sum += items[index-1].getValue() + items[index-2].getValue();
break;
}
alert(sum);
}
};
}();
Ext.onReady(ASoft.Instructor.Grades.init, ASoft.Instructor.Grades, true);
</SCRIPT>
</DIV>
</FORM>