2013-08-25 61 views
0

我在這裏幫助其他用戶的計算器,當我遇到一個問題jQuery的填補了一個輸入 - 我解釋瞭如何解決的東西,但我不能讓我的代碼(即我想添加爲例)實際工作。我對jQuery相當陌生,所以即使我理解了基本知識以及可以做什麼和不可以做什麼,但我仍然發現自己正在爲簡單的任務而努力。自動填充當另一個輸入選擇使用兩個

在這種情況下,我想創建兩個輸入字段,無論使用標籤系統(jQuery chosen)。兩個輸入都有相同的選項列表,我希望當您輸入第一個輸入的項目時,它也會自動將其添加到第二個輸入。這個想法是你可以從第二個列表中刪除任何你想要的項目而不影響第一個項目。

你可以看到我的this jsfiddle嘗試。我嘗試從第一個輸入中提取值並循環,但由於某種原因,它並沒有真正循環超出第一個項目。

我也嘗試的第一個項目適用於第二列表,像這樣:

$('#shipping option[text='+value.value+']').attr('selected', 'selected'); 

,並在循環後這樣做:

$(".chosen-select").trigger('chosen:updated'); 

我知道這不會超出第一工作項目,但它甚至沒有爲此工作。我很困惑我接下來該做什麼。很顯然,所選擇的內容會改變輸入內容,但它並不像通常那樣運行,但我無法理解如何解決這個問題。任何幫助將非常感激!

+0

在你的jsfiddle'警報($(本).VAL())',給你一個錯誤,這就是爲什麼你只循環的第一個項目。 'value.value'也是一個錯誤。 –

+0

這不是事實。 Chrome的控制檯並沒有表現出任何錯誤,甚至帶走該行並不能改變什麼,但它仍然只是一次循環中 – yuvi

+0

我的控制檯出現此錯誤:'遺漏的類型錯誤:無法調用undefined'的方法「toLowerCase」。帶有'value.value'的行也沒有顯示任何錯誤(但是由於'value',它現在只是一個'String'對象,並且沒有'value'屬性),所以我刪除了提醒行,並在我的答案中更改'value.value'行,並且一切正常。 –

回答

0

使用此行:

$('#shipping option[value="'+value+'"]').prop('selected', true); 

請注意,如果您選擇「美國」或「英國」,他們將在Chosen插件顯示兩次,因爲這些選項在HTML兩次存在的,但你可以使用:first選擇,以避免這種

$('#shipping option[value="'+value+'"]:first').prop('selected', true); 

編輯

下面是代碼的工作:http://jsfiddle.net/rf90210/uZBXM/2/

+0

它不適用於我。另外,我不明白使用attr的區別是什麼 - prop只是一個不同的功能,但沒有內在的差異,意味着它應該工作而不是attr ...對嗎? – yuvi

+0

在這種情況下,兩種方法('attr'和'prop')都可以工作(在Chrome中是leas)。這裏有不同的完整解釋:http://api.jquery.com/prop/。我添加了一個jsfiddle到我的答案,所以你可以檢查出它的工作 –

+0

我使用鉻和兩種方法都不適合我的原因... – yuvi

相關問題