2013-02-07 52 views
-1

這是我的第三個問題,所以請理解:)。在提交功能事件之外獲取變量的內容

我有這個提交功能 - 沒有什麼特別的,只是一個serializeArray()和一些檢索到的值:

$("#myform").submit(function(){ 

    var formdata = $(this).serializeArray(); 
    var values = {}; 

    $.each(formdata, function(i, field){ 
     values[field.name] = field.value 
    }); 

    var id = values["mrmid"]; 


}); 

如何傳遞提交功能事件外id變量,所以我可以寫的內容這個div上的變量ID?

$("#results").html(id); 

謝謝!

+0

爲什麼你需要傳遞的提交功能的「ID」之外的價值?你會在哪裏傳遞這個值?到另一個功能?或者你只是想立即顯示「ID」的價值? – Lowkase

+0

它是一個簡單的腳本,它將生成自定義鏈接。用戶將信息粘貼到表單中,然後在提交點擊時,鏈接在表單下的div上生成。 –

回答

0

變化id是一個全局變量

var id; 

$("#myform").submit(function(){ 

    var formdata = $(this).serializeArray(); 
    var values = {}; 

    $.each(formdata, function(i, field){ 
     values[field.name] = field.value 
    }); 

    id = values["mrmid"]; 


}); 


$("#results").html(id); 
+0

或者將該id傳遞給另一個處理html注入的函數(如果有的話)。 – Leeish

+0

真的,它會起作用嗎?讓我檢查一下..如果我有多個值,並且可以說id是幾個變量的值之間的和,那麼我是否需要在全局中聲明每個值? –

+0

我認爲第二種方式更好,你能告訴我一個例子嗎?如何在另一個函數中傳遞它我的意思是... –

0
$("#myform").submit(function(){ 

    var formdata = $(this).serializeArray(); 
    var values = {}; 

    $.each(formdata, function(i, field){ 
     values[field.name] = field.value 
    }); 

    var id = values["mrmid"]; 

    $("#results").html(id); 

}); 

我猜我不明白。這非常簡單。

+0

如果我這樣做,提交後,價值消失 –

+0

那麼Curt說什麼是好的,先定義函數外的變量,然後在提交內改變它的值。如果可能的話,我會偏離全局變量,只是不好的做法,但有些時候它是有道理的。 – Leeish

+0

全球聲明無效 –