Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery:重写以前初始化的属性的值_Javascript_Jquery - Fatal编程技术网

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。