2014-02-21 47 views
1

我使用這個jQuery的取色http://www.eyecon.ro/colorpicker/#about點擊了

jQuery的取色變化值有什麼辦法可以把它改變的值上點擊輸入(*顏色代碼)從顏色拾取的?

現在它提交的顏色只能通過點擊Colorpicker上的提交按鈕來提取。

<input type="text" value="#FFFFFF"> 

    <script type="text/javascript"> 
    $.noConflict(); 
    jQuery(document).ready(function ($) { 
     $('input').ColorPicker({ 
      onSubmit: function(hsb, hex, rgb, el) { 
       $(el).val('#' + hex); 
       $(el).ColorPickerHide(); 
      }, 
      onBeforeShow: function() { 
       $(this).ColorPickerSetColor(this.value); 
      } 
     }) 
     .bind('keyup', function(){ 
      $(this).ColorPickerSetColor(this.value); 
     }); 
    }); 

</script> 
+0

你能詳細說一下,你想改變什麼? –

+0

我想改變輸入的顏色代碼。我會更新我的問題。 – George

回答

4

無法找到一個好辦法,但這裏是一個醜陋的,雖然這樣做的希望不完全是壞的方式:

jQuery(document).ready(function ($) { 
    var $pickerInput; 
    $('input').ColorPicker({ 
     onSubmit: function(hsb, hex, rgb, el) { 
      $(el).val('#' + hex); 
      $(el).ColorPickerHide(); 
     }, 
     onBeforeShow: function() { 
      $(this).ColorPickerSetColor(this.value); 
      $pickerInput = $(this); 
     }, 
     onHide: function(picker) { 
      $pickerInput.val('#' + $(picker).find('.colorpicker_hex input').val()); 
     } 
    }) 
    .bind('keyup', function(){ 
     $(this).ColorPickerSetColor(this.value); 
    }); 
}); 
+0

謝謝,但它似乎並沒有工作。儘管我在控制檯中看不到任何錯誤。 – George

+1

奇怪。你使用的是什麼瀏覽器?這是一個適用於我的JSFiddle。您需要首先訪問http://www.eyecon.ro/colorpicker/,才能緩存插件文件。 http://jsfiddle.net/9a5eR/ – stovroz

+0

奇怪的是,你的例子工作得很好。我正在使用Chrome進行測試,但您的工作正常,但我的工作不是 – George

1

怎麼這樣呢?您可以訪問onChange事件中的十六進制信息並將其分配給某個隱藏的元素,在這種情況下,我添加了第二個輸入。然後,在隱藏的情況下,您將隱藏元素的值分配給當前輸入框。

HTML:

<input id="hexVal" type="text" value="#FFFFFF"> 
<input id="hidden" type="text" value="#FFFFFF"> 

的JavaScript:

jQuery(document).ready(function ($) { 
    $('#hexVal').ColorPicker({ 
     onSubmit: function (hsb, hex, rgb, el) { 
      $(el).val('#' + hex); 
      $(el).ColorPickerHide(); 
     }, 
     onBeforeShow: function() { 
      $(this).ColorPickerSetColor(this.value); 
     }, 
     onChange: function (hsb, hex, rgb) { 
      $('#hidden').val('#' + hex); 
     }, 
     onHide: function (picker) { 
      $('#hexVal').val($('#hidden').val()); 
     } 
    }) 
     .bind('keyup', function() { 
     $(this).ColorPickerSetColor(this.value); 
    }); 
}); 

JSFiddle here

+1

謝謝。我有很多這樣的輸入,所以這對我來說並不適合。 – George

+0

啊,對不起 - 沒有意識到。很高興你有它與其他答案排序! –