2014-09-26 112 views
1

我無法將我的id參數傳遞給我的過程函數。當我加載頁面時,它由於某種原因自動運行,無需點擊提交按鈕,然後如果我嘗試在表單上添加新信息,它不會執行任何操作。我真的很想在提交時從init函數傳遞參數。如何將參數從一個函數傳遞到下一個

function process(first, last, dept) { 
    'use strict'; 


    return false; 
} // End of process() function. 

// Initial setup: 
function init() { 
    'use strict'; 
    $('theForm').onsubmit = process('firstName', 'lastName', 'department'); 
} // End of init() function. 
window.onload = init; 

回答

2

而不是做

$('theForm').onsubmit = process('firstName', 'lastName', 'department'); 

$('theForm').onsubmit = function(){ 
    process('firstName', 'lastName', 'department'); 
} 

現在,你在呼喚你的節目開始時的處理功能,並賦予它的返回值作爲onsubmit處理的。在結束當前的版本是相同的:

process('firstName', 'lastName', 'department'); 
$('theForm').onsubmit = false; 

相反,你想要做的是有onsubmit事件處理程序調用proccess的功能。

+0

行了!另一件事是,一旦運行,輸出的消息就會出現,但不會立即消失。 – EsotericRider 2014-09-26 01:26:11

+0

這可能是因爲該頁面在您提交表單時正在重新加載。一個簡單的黑客可能會把這個消息放在一個'alert()'框中,但我認爲它不是一個好主意,可以暫停表單提交以顯示一條消息......爲什麼不在響應頁面上顯示消息? – hugomg 2014-09-26 01:32:44

+0

該消息應顯示在響應頁面上。它應該採取的信息,然後顯示信息作爲一條消息,當我點擊提交,它會這樣做,但然後重新加載自己再次,這是令人困惑。 – EsotericRider 2014-09-26 01:36:09

0

你也可以做......

$('theForm') 
    .onsubmit = process.bind(window, 'firstName', 'lastName', 'department'); 

如果你的目標平臺不支持bind(),你可以polyfill it

相關問題