Situation
我在我的项目中使用jscolor颜色选择器。我使用ajax调用加载输入字段颜色。当我将该值插入到输入字段时,将触发document.getElementById('ktxt').jscolor.importColor();更新颜色选择器值。
问题
我已经更新了最新的jscolor.js版本(2.3.3,发布日期11/08/2020)。
在这个更新之后,我不得不更改一些东西,新版本使用的是data-jscolor=""而不是类jscolor。我做了所有必要的更改,但是在动态加载我的输入字段值之后,我无法得到jscolor框的更新。
我已经在下面的例子中说出了我已经尝试过的一些事情。我在那里也找不到答案,文档
function loadColor() {
$("#ktxt").val('FF1212');
$("#kbg").val('26FF35');
jscolor.trigger('input change')
//document.getElementById('ktxt').jscolor.trigger('input change');
//document.getElementById('ktxt').jscolor.fromString('26FF35')
//document.getElementById('ktxt').jscolor.importColor();
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jscolor/2.3.3/jscolor.min.js"></script>
<button onclick="loadColor()">Load Preset Colors</button>
<input type="text" id="ktxt" data-jscolor="" class="form-control" name="ctxt" value="">
<input type="text" id="kbg" data-jscolor="" class="form-control" name="cbg" value="">
发布于 2020-08-20 10:49:02
从文档中可以使用fromString,如下所示。您需要选择器对象,所以使用$('#ktxt')[0].jscolor。
试试看。
function loadColor() {
$('#ktxt')[0].jscolor.fromString('#FF1212');
$('#kbg')[0].jscolor.fromString('#26FF35');
}<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jscolor/2.3.3/jscolor.min.js"></script>
<button onclick="loadColor()">Load Preset Colors</button>
<input type="text" id="ktxt" data-jscolor="" class="form-control" name="ctxt" value="">
<input type="text" id="kbg" data-jscolor="" class="form-control" name="cbg" value="">
https://stackoverflow.com/questions/63503059
复制相似问题