jQuery:覆盖先前初始化的属性的值

时间:2014-07-21 10:30:03

标签: javascript jquery

我有一个以这种方式初始化的对象:

 $(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>

2 个答案:

答案 0 :(得分:0)

可以使用jQuery插件构造在页面上为Signature Pad的所有实例全局更改默认选项。所以你可以这样做:

$.fn.signaturePad.validateFields = false;

<强> More details:Changing Default Options

更新

但是你不想为所有签名板更改它,所以你可以这样做:

var sig = $('#smoothed').signaturePad({
            drawOnly:true,  
            drawBezierCurves:true, 
            errorMessageDraw: 'Please sign',
            lineTop:200,
            validateFields: true
        });    
var api = $('#smoothed').signaturePad({validateFields:false});
api.regenerate(sig);

答案 1 :(得分:0)

插件函数返回api个对象。该对象有一个函数updateOptions,您可以调用该函数来更新该实例的插件设置。

var sig = $('#smoothed').signaturePad({
...

// Later
sig.updateOptions({ validateFields: false });