Made sure best in place always use nil value

I found that if I set nil to other value like this :nil => "N/A", the first time I activated the input field, value in the input field will show as empty string. But the second time I activated input field, the value will show as "N/A". I think the correct behavior should be still show as empty string like the first time we activate input field.

Also, when I read the code, I found that in activate function, it still use "-" to set old value when this.isNil == true, and it create some strange behavior when there is an error raise from server side.