2014-04-26 31 views
1

我的jQuery函數有問題。我有一個表格可以保存一些值。我有可點擊的元素稱爲「點」,用戶可以在這裏指出這個問題的重要性。每個問題都有這個可點擊的元素,但問題是用戶只能選擇1個可點擊的元素...用jQuery保存多次點擊而不是1

如果我點擊另一個元素,它會亮起來,並添加類「額外重要」,但它不會保存它。當我點擊保存時,它只保存了第一次點擊的問題,而不是全部。 我想要的是:它應該拯救他們。

我在做什麼錯?這是片段..

function change_importance_question (e) { 
    var t = jQuery("#" + e).closest("form"), 
     n = e.substring(e.indexOf("_") + 1), 
     n = n.substring(0, n.indexOf("_")); 
    jQuery("input[name*='_question']", t).val(n); 
    jQuery("#" + e).removeClass("not-important").addClass("extra-important") 
} 

有人可以解釋我怎麼能讓他們保存每一個(點擊)?我必須使用preventdefault嗎?

+0

你能分享一個測試小提琴嗎? http://www.jsfiddle.net –

+0

不,我不能...但我很想在網站上給你一個測試帳戶。可以嗎?私人? – Siyah

+0

@ Siyah我本來想幫忙的。但是,看起來我必須去吃午飯(下午2點)。我已經收藏了這個問題看看以後:) –

回答

0

您是否嘗試過記錄't'和'n'的值以確保它每次都不相同或未定義?

function change_importance_question (e) { 
    // when I run this code with e is the event i get 
    // Error: Syntax error, unrecognized expression: #[object Object] 
    var t = jQuery("#" + e).closest("form"); 
    console.log(t) 
    var n = e.substring(e.indexOf("_") + 1); 
    console.log(n); 
    n = n.substring(0, n.indexOf("_")); 
    console.log(n) 
    // if t is undefined it will find and set all input elements named _question on the entire page 
    jQuery("input[name*='_question']", t).val(n); 
    jQuery("#" + e).removeClass("not-important").addClass("extra-important") 
} 
+0

是的,我試過了。仍然是同一個兄弟,只保存最後一次點擊。 – Siyah

+0

你可以創建jsfiddle來演示你在做什麼,因爲我不明白你是如何通過var t = jQuery(「#」+ e).closest(「form」)來獲取dom元素的。除非e是一個元素ID不是事件對象的字符串? – startswithaj

+0

如果此代碼在正確的元素上設置了正確的值,那麼它可能不是問題的原因。林不知道你的意思是'儲蓄'? – startswithaj