我正在尝试创建具有不同 ID 的多个签名框以使用相同的脚本 +(清除)&&(撤消)按钮
它可以完美地使用一个签名但是如果我添加了多个 id 它会产生冲突-您可以在下面找到签名的 PHP 示例脚本
<?php
for ($i = 1; $i <= 4; $i++){
$table_row .= '<p class="bold" id="signatureLabel_' . $i . '">'. _l('signature') .' </p>';
$table_row .= '<div class="signature-pad--body">';
$table_row .= '<canvas id="signature_' . $i . '" height="130" width="550"></canvas>';
$table_row .= '</div>';
$table_row .= '<input type="text" style="width:1px; height:1px; border:0px;" tabindex="-1" name="signature_' . $i . '" id="signatureInput_' . $i . '">';
$table_row .= '<div class="dispay-block">';
$table_row .= '<button type="button" class="btn btn-default btn-xs clear mright5" tabindex="-1" data-action="clear_' . $i . '">'. _l('clear') .'</button>';
$table_row .= '<button type="button" class="btn btn-default btn-xs" tabindex="-1" data-action="undo_' . $i . '">'. _l('undo') .'</button>';
$table_row .= '</div>';
echo $table_row;
}
?>
这是 Javascript 示例代码
function signaturePadChanged() {
var input = document.getElementById('signatureInput');
var $signatureLabel = $('#signatureLabel');
$signatureLabel.removeClass('text-danger');
if (signaturePad.isEmpty()) {
$signatureLabel.addClass('text-danger');
input.value = '';
return false;
}
}
var canvas = document.getElementById("signature");
var clearButton = wrapper.querySelector("[data-action=clear]");
var undoButton = wrapper.querySelector("[data-action=undo]");
var identityFormSubmit = document.getElementById('add_company_reservation_form');
var signaturePad = new SignaturePad(canvas, {
onEnd:function(){
signaturePadChanged();
}
});
clearButton.addEventListener("click", function(event) {
signaturePad.clear();
signaturePadChanged();
});
undoButton.addEventListener("click", function(event) {
var data = signaturePad.toData();
if (data) {
data.pop(); // remove the last dot or line
signaturePad.fromData(data);
signaturePadChanged();
}
});