2013-04-01 25 views
1

我想創建一個隱藏的窗體與一些數據,需要提交到一個jsp頁面(它會在新窗口中打開),但所有這些都會以編程方式發生,而無需用戶按下提交按鈕。如何以編程方式提交SmartClient DynamicForm?

我的示例代碼

var fsquery = "abcd"; 
var emailId = "[email protected]"; 
var portalPsswd = "password"; 
var projectId = "123"; 
var kbUrl = "some url which will consume form post parameters"; 
var pv="1.2",pn="ADA"; 

this.kbform=isc.DynamicForm.create({ 
width: 300, 
fields: [ 
{type: "hiddenitem", name: "EMAIL_ID", defaultValue:emailId }, 
{type: "hiddenitem", name: "PORTAL_PASSWORD", defaultValue:portalPsswd}, 
{type: "hiddenitem", name: "PROJECT_ID", defaultValue:projectId}, 
{type: "hiddenitem", name: "FSQUERY", defaultValue:fsquery}, 
{type: "hiddenitem", name: "PRODUCT_VERSION", defaultValue:pv}, 
{type: "hiddenitem", name: "PRODUCT_NAME", defaultValue:pn}, 
{type: "hiddenitem", name: "ORIGIN", defaultValue:"Administrator"}, 
{type: "submit", name: "submit", defaultValue: "submit"} 
], 
action: kbUrl, 
target: "_blank", 
method: "POST", 
canSubmit: true 
}); 

this.kbform.submit(); 

的最後一條語句不會自動提交表單,但如果我點擊提供的提交按鈕,根據需要它完美的作品。

請給我一個解決方案,它將幫助我模擬「提交」類型的按鈕功能提交表單。

您可以嘗試下「text.js」標籤此示例代碼here

回答

0

我不知道這一點,但你有沒有試過觸發一個事件window.onload提交?我認爲該表單在文檔完全加載之前不可用。對不起,我沒有任何例子。

+1

感謝您的回答,即使我懷疑是相同的,在DynamicForm完全加載值之前調用'kbform.submit()',我怎樣才能使用類似'window.onload'的提交表單來提交表單? – abi1964

+0

下面是一些等待頁面加載的代碼,然後調用計時器延遲半秒鐘,檢查表單是否有內容,然後根據結果提交或循環。這是我如何去做的一個簡單例子。 '變種fSubmit =函數(){ 如果(<內容本>){ }否則{ fResetTimer() } } 變種fResetTimer =函數(){ isc.Timer.setTimeout(」 fSubmit「,500) } window.onload = function(){fResetTimer(); };' – Insinbad

+1

這就是我解決問題的方法,首先我創建了沒有值的所有表單元素,並將其添加到對話框(父元素),後來我向它添加了值,所以由於創建表單項的延遲無法找到要提交的表單。謝謝 – abi1964

相關問題