Is anyone aware of what variables go into a form to make the iPhones virtual keyboard\'s GO button submit the form vs. not?
I\'ve been trying to narrow down the scen
GO button to submit is a default behaviour of iOS and don`t try to hack the keyboard because UIKeyboard is runtime header, however you can inject JS for your html in runtime and prevent GO button behaviour (GO acts like a Enter key),
Try this,
WKWebView *webView;
WKUserContentController *contentController = [[WKUserContentController alloc] init];
NSString *script1 = @"var isEnter = false;";
WKUserScript *userScript1 = [[WKUserScript alloc] initWithSource:script1 injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:false];
[contentController addUserScript:userScript1];
NSString *script2 = @"function captureGoKey(e){if(isEnter){e.preventDefault();}isEnter = false;}";
WKUserScript *userScript2 = [[WKUserScript alloc] initWithSource:script2 injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:false];
[contentController addUserScript:userScript2];
NSString *script3 = @"var form = document.getElementsByTagName('form')[0];";
WKUserScript *userScript3 = [[WKUserScript alloc] initWithSource:script3 injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:false];
[contentController addUserScript:userScript3];
NSString *script4 = @"document.onkeypress = function(e){if(e.keyCode == 13){isEnter = true;}}";
WKUserScript *userScript4 = [[WKUserScript alloc] initWithSource:script4 injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:false];
[contentController addUserScript:userScript4];
NSString *script5 = @"if(form.attachEvent){form.attachEvent('submit', captureGoKey);}else{form.addEventListener('submit', captureGoKey);}";
WKUserScript *userScript5 = [[WKUserScript alloc] initWithSource:script5 injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:false];
[contentController addUserScript:userScript5];
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
config.userContentController = contentController;
webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:config];