update oninput to use hasEvent