2012-08-30 50 views
0

我在Objective-C中製作Mac應用程序,我需要它能夠在網站上提交表單(當然,按下按鈕),但所有用戶都有要做的是提供與表格相關的時間。從Mac Cocoa應用程序提交HTML表單

下面是從網站的代碼:

<td class=t_h>07:16</td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td class=t_s height='24'> 
<form method="POST" action="members_booking.php?operation=member_booking_form" onSubmit="return ValidateMemberBookNow(this)"> 
<INPUT NAME=double_click TYPE=hidden> 
<INPUT NAME=course_id TYPE=hidden VALUE="1"> 
<INPUT NAME=unique_id TYPE=hidden VALUE="230693"> 
<INPUT NAME=d_date TYPE=hidden VALUE="2012-09-07"> 
<INPUT NAME=Booking_Operation TYPE=hidden VALUE="Book Casual"> 
<INPUT NAME=SubmitButton TYPE=submit VALUE="Book Now"> 
</form> 
</td> 
</tr> 
<tr> 
<td class=t_h>07:24</td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td class=t_s height='24'> 
<form method="POST" action="members_booking.php?operation=member_booking_form" onSubmit="return ValidateMemberBookNow(this)"> 
<INPUT NAME=double_click TYPE=hidden> 
<INPUT NAME=course_id TYPE=hidden VALUE="1"> 
<INPUT NAME=unique_id TYPE=hidden VALUE="230694"> 
<INPUT NAME=d_date TYPE=hidden VALUE="2012-09-07"> 
<INPUT NAME=Booking_Operation TYPE=hidden VALUE="Book Casual"> 
<INPUT NAME=SubmitButton TYPE=submit VALUE="Book Now"> 
</form> 
</td> 
</tr> 
<tr> 
<td class=t_h>07:32</td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td class=t_s height='24'> 
<form method="POST" action="members_booking.php?operation=member_booking_form" onSubmit="return ValidateMemberBookNow(this)"> 
<INPUT NAME=double_click TYPE=hidden> 
<INPUT NAME=course_id TYPE=hidden VALUE="1"> 
<INPUT NAME=unique_id TYPE=hidden VALUE="230695"> 
<INPUT NAME=d_date TYPE=hidden VALUE="2012-09-07"> 
<INPUT NAME=Booking_Operation TYPE=hidden VALUE="Book Casual"> 
<INPUT NAME=SubmitButton TYPE=submit VALUE="Book Now"> 
</form> 
</td> 
</tr> 
<tr> 

最多可以有這些塊的40。 <td class=t_h>07:32</td>是用戶指定的時間。我需要與該時間關聯的按鈕自動按下。怎麼樣?

在此先感謝你們!

回答

1

這是jQuery進入自己的問題。基本思路是找到類t_h的元素07:32。然後,在其父節點中,找到一個form元素和submit()它。

在這裏你去:

function submitFormForTime(time){ 
    $(".t_h").each(function(i, obj){ // find each element with the class t_h 
     if ($(this).text() != time) return; // not the right one 
     $(this).parent().find("form").each(function(i, obj){ 
      obj.submit(); // submit that form 
     }); 
    }); 
} 

submitFormForTime("07:32"); 

添加這個腳本的網站。要呼叫的Objective-C見這個腳本:

從上述文件,下面將調用來自Objective-C的JavaScript函數:

id win = [webView yourWebView]; // assumes your webView is called yourWebView 
[win evaluateWebScript:@"submitFormForTime('07:32');"]; 
+0

謝謝你真棒回答!對此,我真的非常感激。經過一整小時的研究和試驗和錯誤之後,我仍然非常困惑,應該如何從Objective-C代碼中調用它。我不是javaScript buff,但是從我在Apple文檔中看到的內容,沒有關於使用變量調用完整函數的信息(如本例中的時間)。任何更多的指針在正確的方向將非常感激。非常感謝。 –

+1

不客氣,康納。關於從Objective-C調用JavaScript,請參閱鏈接文檔末尾的示例。我已經用示例代碼更新了答案。 –

+0

謝謝,但請回答最後一個問題:使用time變量調用函數沒有問題,但我該如何實現函數呢?我已經在我的資源中創建了一個單獨的.js文件,但是如何使這與webView中顯示的當前頁面交互?再次感謝 –