gpt4 book ai didi

jquery - 在重置表单的ajax发布后初始化jscolor

转载 作者:行者123 更新时间:2023-12-01 00:41:04 25 4
gpt4 key购买 nike

你怎么跑jscolor在将表单元素重置回默认值的 ajax 帖子之后?

当您单击“恢复默认值”按钮时,下面的 ajax 成功发布到页面内 iframe 并将页面表单值恢复为默认值。问题是附加了 jscolor 的输入不会将其背景颜色更改回默认值。

我所做的研究使我相信我需要使用 jscolor.init(); 重新启动 jscolor在 ajax 发布后,但我无法让它工作。我还尝试在 ajax post 之外构建一个函数(重置表单值,然后重置 jscolor.init();),并使用 onclick 将其绑定(bind)到“恢复默认值”按钮,但这不起作用。

如何让 jscolor 在 ajax 发布后再次运行?

Javascript:

<script type="text/javascript">
$(document).ready(function() {
$('#restore_form').click(function() {
$.ajax({
data: $('#build_form').serialize(),
type: $('#build_form').attr('method'),
url: $('#build_form').attr('action')+'?type=restore',
success: function(response) {
$('#preview').contents().find('html').html(response);
$('#build_form')[0].reset();
jscolor.init();
}
});
return false;
});
});
</script>

HTML:

<iframe id="preview" src="preview.php" width="100%" height="120"></iframe>

<form id="build_form" class="build_form" action="preview.php" method="post">
<input type="text" name="background_color" value="#0CA0E2" class="color {adjust:false,hash:true}" />
<input id="restore_form" name="restore" type="submit" value="Restore Default" class="button" />
<input id="save_form" name="submit" type="submit" value="Save Changes" class="button" />
</form>

最佳答案

尝试重置颜色。看到你的标记,我认为你的默认颜色是 0CA0E2。我说得对吗?如果是这样,您只需要(如果您使用 jscolor 构造函数并将新对象分配给 myJsColorVar var):

myJsColorVar.color.fromString("0CA0E2"); // instead of jscolor.init()

在文档中,它的用法是:

document.getElementById("myColorInput").color.fromString("0CA0E2");

我认为最后一个示例更适合您,因为我看到您没有在 JS 中创建 jscolor,而是应用了“颜色类”。

您只需为颜色输入配置一个 ID:

<form id="build_form" class="build_form" action="preview.php" method="post">
<input id="myColorInput" type="text" name="background_color" value="#0CA0E2" class="color {adjust:false,hash:true}" />
<input id="restore_form" name="restore" type="submit" value="Restore Default" class="button" />
<input id="save_form" name="submit" type="submit" value="Save Changes" class="button" />
</form>

看这里:http://jscolor.com/try.php#setting-color

编辑:我创建了一个自定义 jscolor。

<html>
<head>
<title>jscolor demo</title>
</head>
<body>
<script type="text/javascript" src="jscolor.js"></script>
<script type="text/javascript">

function CustomJSColor( applyIn, defaultColor, opts ) {

this.jscolor = new jscolor.color( document.getElementById( applyIn ), opts );
this.defaultColor = defaultColor;
this.jscolor.fromString( this.defaultColor );

this.reset = function() {
this.jscolor.fromString( this.defaultColor );
};

}

</script>
<body>
<input id="myField">
<script>

// the input with id "myField" will be the color picker
// 0099cc is the default color
// {} is the other options
var myPicker = new CustomJSColor( "myField", "0099cc", {} );

// to reset the color you just need to call reset
myPicker.reset();

</script>
</body>
</html>

我尝试继承 jscolor.color 但它似乎不是一个构造函数,所以我创建了该类,其中包含一个 jscolor 。要重置组件的颜色,只需调用reset方法即可。请小心,因为仅使用“color”类不会创建 CustomJSColor。您需要以编程方式创建它。

关于jquery - 在重置表单的ajax发布后初始化jscolor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11642723/

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