2013-02-18 34 views
-2

我有填充我的隱藏字段這個jQuery腳本:輸入元素的值設置爲可變

$("#button").click(function() { 
    $("#myHiddenField").val(4); 
    $("#form").submit(); 
}); 

我想換成硬編碼「4」與變量:

我嘗試這樣做:

$("#button").click(function(i) { 
    $("#myHiddenField").val(i); 
    $("#form").submit(); 
}); 

但它不工作,我不知道如何傳遞參數i。這部分代碼有什麼問題?

我有4個不同的按鈕。我不想爲每個按鈕創建4個函數點擊。在這種情況下,i是隱藏字段的值,用於標識哪個按鈕已被點擊。

+0

在你的代碼'i'是事件對象。 – undefined 2013-02-18 13:44:57

+0

'i'從哪裏來? – xdazz 2013-02-18 13:45:00

+0

你想發送什麼值?你想從哪裏得到它?你期望「我」在你的例子中有什麼? – Deleteman 2013-02-18 13:45:19

回答

0

您可以使用屬性來存儲臨時值和日後訪問:

// set value 
$("#button").attr("temp", 4); 
... 
$("#button").click(function() { 
     $("#myHiddenField").val($(this).attr("temp")); 
     $("#form").submit(); 
}); 

您也可以使用全局變量,但不推薦。

+0

因此,如果我有4個按鈕,我可以添加一個attr按鈕,並用它來製作訣竅...對嗎? – user2076952 2013-02-18 13:53:34

+0

是的,你也可以使用.data()代替attr()代替複雜的數據 – phnkha 2013-02-18 13:55:36

+0

好了解... thx – user2076952 2013-02-18 13:57:52

0

如果你想設置i的值,則:

var i 
$("#button").click(function() { 
     i=$("#myHiddenField").val(); 
     $("#form").submit(); 
}); 

val()默認返回元素的值。

如果你想將值設置爲i,那麼你需要設置i第一:

var i=4 
$("#button").click(function() { 
     $("#myHiddenField").val(i); 
     $("#form").submit(); 
}); 

在你當前的代碼,i被髮送到由點擊產生的Event。我不認爲你想這樣做。

+0

這不會得到或設置變量「我」。在這種情況下,傳遞給'.click'函數的參數是一個jQuery對象,而不是一個自定義變量。這將或者a)用'#myHiddenField'中的值覆蓋jQuery對象,或者b)將'#myHiddenField'的值設置爲jQuery對象。有關更多信息,請訪問['.click'](http://api.jquery.com/click/)功能文檔頁面。 – War10ck 2013-02-18 13:53:00

+0

@ War10ck:哎呀。我複製了OPs問題的代碼,並完全忘記從arglist中刪除'i'。謝謝:) – Manishearth 2013-02-18 13:54:42

+0

沒問題的朋友。快樂編碼! :) – War10ck 2013-02-18 13:55:16

0

click事件處理函數的參數是jQuery Event Object,而不是自定義變量。你想要做的很簡單:

var someVariable = 4; 
$("#button").click(function() { 
    $("#myHiddenField").val(someVariable); 
    $("#form").submit(); 
}); 

只要確保someVariable在父範圍內定義,當你綁定你的點擊處理或在全球範圍內(或處理程序本身中,具體情況取決於值源自) 。

0

你的情況ievent ...所以它不能把值隱藏字段...定義一個變量i內點擊或全局變量... 試試這個

$("#button").click(function() { 
    var i="somevalue"; //value u want 
    $("#myHiddenField").val(i); 
    $("#form").submit(); 
}); 
0

它取決於你想從哪裏獲得價值。傳入匿名函數的是事件對象,而不是普通變量。試試這個:

$("#button").click(function(event) { 

    var x = getValueFromSomewhere(); 

    $("#myHiddenField").val(x); 
    $("#form").submit(); 
}); 

或者這樣:

var y = getValueFromSomewhere(); 

$("#button").click(function(event) { 

    // The anonymous function can access variables from the outer scope. 
    $("#myHiddenField").val(y); 
    $("#form").submit(); 
});