What we did is we took the editRow(…) call from the “onRowSelect” event. Instead we now have to click on a button to edit the row.
By taking the editRow out of the event and making it explicit that you have to click the button to edit the row, when you call getRowData(…) it will actually return the value of the field, rather than the html of the input box.
the idea is that when you call getRowData the field is in fact not editable. However you have edited it before so the edited data is there.
I found a workaround for similar issue. I add a condition to check if getRowData returns INPUT control or valid data. If getRowData returns control then I use jquery to locate this INPUT control and get value directly from the control (i.e.)