Javascript jQuery:重写以前初始化的属性的值
我以这种方式初始化了一个对象:Javascript jQuery:重写以前初始化的属性的值,javascript,jquery,Javascript,Jquery,我以这种方式初始化了一个对象: $(document).ready(function() { $('#smoothed').signaturePad({ drawOnly:true, drawBezierCurves:true, errorMessageDraw: 'Please sign', lineTop:200, validateField
$(document).ready(function()
{
$('#smoothed').signaturePad({
drawOnly:true,
drawBezierCurves:true,
errorMessageDraw: 'Please sign',
lineTop:200,
validateFields: true
});
});
单击按钮时,我希望覆盖validateFields的值。
我试过这个:
<input type="button" value="back" onclick="myFunction();" />
<script>
function myFunction()
{
$('#smoothed').prop('validateFields', 'false');
//second try
$('#smoothed').attr('validateFields', 'false');
}
</script>
可以使用jQuery插件构造全局更改页面上签名板的所有实例的默认选项。因此,您可以通过以下方法实现这一点:
$.fn.signaturePad.validateFields = false;
使现代化
但您不想更改所有签名板的签名,因此可以执行以下操作:
var sig = $('#smoothed').signaturePad({
drawOnly:true,
drawBezierCurves:true,
errorMessageDraw: 'Please sign',
lineTop:200,
validateFields: true
});
var api = $('#smoothed').signaturePad({validateFields:false});
api.regenerate(sig);
plugin函数返回一个api对象。该对象有一个函数updateOptions,您可以调用该函数来更新该实例的插件设置
var sig = $('#smoothed').signaturePad({
...
// Later
sig.updateOptions({ validateFields: false });
prop和attr在这里不是正确的工具。你应该检查你的插件是否支持动态修改选项,不是所有插件都支持。+1 Frederic,你正在向插件函数传递一个对象,这些通常在初始化后被丢弃,插件以其他方式存储设置。设置属性不会更改值,因为validateFields是函数signaturePad的选项。您需要在用于覆盖选项的jquery插件中找到它。请参阅API文档。谢谢@FrédéricHamidi。现在我知道了。只有当signaturePad将其设置保存在DOM中时,这才有效。查看signaturePad文档了解如何更改设置。如果所有其他操作都失败,请删除元素,重新添加它并重新初始化signaturePad。