UIWebViewがあり、次のような単純なフォームがあります。
<form action="http://message/">Your Email: <input id="email" /><br />
<input type="submit" value="Submit" />
</form>
現在、JS検証はなく、フォームはどこかに送信されただけで、フィールド値を取得する方法がわかりません。私がコントローラーに持っているのはこれだけです:
- (BOOL)webView:(UIWebView *)aWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
if ([request.URL.scheme isEqualToString:@"message"])
{
// RIGHT NOW THIS DOESNT WORK...HOW DO I GET IT RIGHT? :)
NSString *useremail = [theWebView stringByEvaluatingJavaScriptFromString:@"getEmail()"];
NSLog(useremail);
}
return YES;
}
コントローラーにフィールド値を確認させる方法と、jsのフィールド値を検証する方法がわかりません。
これを最もよく達成する方法を教えてください。
また、リクエストURL(本当に必要なのはこれだけです)をヒットするJavaScript関数を作成しようとしましたが、リクエストURLは送信されません。
<script type="text/javascript">
function test ()
{
// Het the params.
var name = escape(document.getElementById("name").value);
var email = escape(document.getElementById("email").value);
var phone = escape(document.getElementById("phone").value);
var url="http://www.myurl.com?platform=ios&name="+name+"&email="+email+"&phone="+phone;
alert(url);
var ajaxObj = createXMLHttp();
//var url = 'myrequest.php';
ajaxObj.open("GET", url, true);
ajaxObj.onreadystatechange = function()
{
ajaxObj.processRequest();
}
ajaxObj.send(null);
ajaxObj.processRequest = function()
{
if (this.readyState == 4)
{
// got response
}
}
alert("1");
var req ;
// Browser compatibility check
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
req = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
req = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
var req = new XMLHttpRequest();
req.open("GET", url ,true);
req.onreadystatechange = function ()
{
//document.getElementById('divTxt').innerHTML = "Contents : " + req.responseText;
}
req.send(null);
return false;
}
</script>
ありがとう!