2014-09-30 46 views
0

我有大量的顏色選擇的是輸入的值轉換成輸入字段:jQuery的設置使用VAL()輸入和激活的變化()

<input type="text" class="colour_picker"/> 

現在,當我預填充字段,我想用是這樣的:

$(document).on("change", ".colour_picker",function(){ 

$(this).css("background-color", "#"+$(this).val()); 
}); 

然而,這不火,我fugured了,我需要設置.VAL()之後調用.change(),但有更簡單的方式來做到這一點?我已經爲此編寫了數以千計的JS代碼,並且沒有真正想要通過它們全部找到所有的預填充腳本並修改它們。

編輯:這是一個小提琴來展示問題的一個例子。 http://jsfiddle.net/kj5sjs22/1/

+0

你可以做一個演示。 – 2014-09-30 14:15:34

+0

http://jsfiddle.net/kj5sjs22/1/ – 2014-09-30 14:22:40

+0

在失去焦點後改變輸入提升事件,所以如果你想在輸入值時看到結果,你需要使用像'keyup','keydown'或可能[輸入事件] (https://developer.mozilla.org/en-US/docs/Web/Events/input) – Grundy 2014-09-30 14:23:14

回答

0

平變化僅火災時,用戶鍵入的文本,然後,輸入失去焦點。 這不是你的情況。您必須觸發該事件。

$(".colour_picker").val("000000").trigger('change'); 

問候。

+0

請參閱編輯的文章請 – 2014-09-30 14:23:42

+0

我已更新答案。 – 2014-09-30 14:30:52

+0

你不明白這個問題。我想通過實際的JS更改它,而不是輸入,然後觸發onchange – 2014-09-30 14:31:41

-1

嘗試

$(document).on("change", ".colour_picker",function(){ 
$(this).css({"background-color":"#"+$(this).val()}); 
}); 

$(".colour_picker").keyup(function(){ 
$(this).css({"background-color":"#"+$(this).val()}); 
}); 
+0

請參閱編輯後請 – 2014-09-30 14:23:17

+0

http: //jsfiddle.net/kj5sjs22/2/ – 2014-09-30 14:29:33

+0

你不明白這個問題。我想通過實際的JS更改它,而不是輸入,然後觸發onchange。 – 2014-09-30 14:32:23