gpt4 book ai didi

javascript - 用于单独输入字段的 Bootstrap Colorpicker 附加组件

转载 作者:行者123 更新时间:2023-11-28 03:33:09 31 4
gpt4 key购买 nike

我正在尝试使用 Bootstrap Colorpicker控制输入​​字段中文本的颜色。我想要附加字段附加到输入字段而不是默认关联的十六进制输入框。

具体来说,我有一个用于标题的文本输入字段,我希望在该字段旁边有一个附加的拾色器框来控制其颜色(如其他地方显示的那样)。我不知道如何在没有标准十六进制输入字段的情况下使用 Colorpicker 附加框。

我如何为不相关的输入字段正确编写插件代码,并仍然保留 JS 中的值以供其他地方使用?

谢谢!

HTML

<!DOCTYPE html>
<html lang="en">
<head>
<!-- Style -->
<link href="assets/css/bootstrap.css" rel="stylesheet">
<link href="assets/css/bootstrap-colorpicker.min.css" rel="stylesheet">
<!-- JavaScript -->
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
<script src="assets/js/bootstrap-colorpicker.min.js"></script>
</head>
<body>
<div class="container">
<form class="form-horizontal" action="process-campaign-creative.php" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="title" class="control-label">
Title
</label>
<div class="input-group">
<input type="text" class="form-control" name="title" id="title">

<!-- PROBLEM HERE: Doesn't show color box (and value doesn't seem to change) -->
<span id="cp1" class="input-group-addon colorpicker-component" value="#00AABB"><i></i></span>

</div>
</div>
</form>
</div>
</body>

JS

//SRC: https://github.com/farbelous/bootstrap-colorpicker/blob/master/dist/js/bootstrap-colorpicker.js
<script type="text/javascript">
$('#cp1').colorpicker();
</script>

CSS

//SRC: https://github.com/farbelous/bootstrap-colorpicker/blob/master/dist/css/bootstrap-colorpicker.css`

最佳答案

您想将所选颜色直接应用到输入字段内容上。
(其中包含用户的“标题”文本,而不是十六进制颜色编号)。

好的...但是 BootStrap 的 colorPicker 实际上使用 input 字段来使用键盘选择颜色。

所以我们必须“破解它”一点......
好消息是我们可以从 colorPicker 中解除绑定(bind)输入的 keyup 事件。

然后我们必须确保用户的文本将保留在 colorPicker 的 changeColor 事件中...并获取颜色编号 directly from the API (using .data('colorpicker'))将其应用于用户的文本。

下面是您希望它执行的代码:(运行代码片段)

$(function() {

// Initiate the colorpicker
$("#cp").colorpicker();

// Unbind the keyup event from the input (which normally changes the color.)
$("#title").off("keyup");

// Define a variable for the user's text at global scope.
var titleText;

// Get the text value inputed by the user as soon as the colorPicker is accessed.
$('#cp-icon').on("mousedown",function(){
titleText = $("#cp>input").val();
//console.log( titleText );
});

// On color selection, affect the input's text with it.
$("#cp").on("changeColor",function(){
//console.log("change event");
var colorPicked = $('#cp').data('colorpicker').input[0].value;
$("#title").val(titleText).css("color",colorPicked);
});
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-colorpicker/2.5.1/css/bootstrap-colorpicker.css" rel="stylesheet"/>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-colorpicker/2.5.1/js/bootstrap-colorpicker.min.js"></script>


<body>
<div class="container">
<form class="form-horizontal" action="process-campaign-creative.php" method="POST" enctype="multipart/form-data">
<div class="form-group">
<label for="title" class="control-label">
Title
</label>
<div class="input-group" id="cp">
<input type="text" class="form-control" name="title" id="title">
<span class="input-group-addon colorpicker-component"><i id="cp-icon"></i></span>
</div>
</div>
</form>
</div>
</body>

CodePen .

关于javascript - 用于单独输入字段的 Bootstrap Colorpicker 附加组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44620286/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com