Javascript PreventDefault在复选框“之后不工作”;onchange";
我正在我的modal中开发签名板jQuery插件。我必须批准一张有我签名的处方。我还有一个默认签名的复选框。如果我在目录中有我的签名的任何图像,它将在模态上显示该图像,并带有默认复选框“checked”。 有两种可能我将有一个默认签名或没有: 1.使用默认签名 2.取消选中该复选框并添加新签名。 如果签名板在任何情况下为空,则表单将不会提交,并将提示错误消息 我对onchange功能有一个问题,当我将复选框状态更改为“取消选中”时,将显示签名板div,如果我将其保留为空并按下保存按钮,则会提示我一条错误消息。但当我再次“选中”和“取消选中”复选框时,“PreventDefault”功能不起作用,表单提交时带有任何空的签名板 我的JavaScript代码:Javascript PreventDefault在复选框“之后不工作”;onchange";,javascript,jquery,onchange,preventdefault,Javascript,Jquery,Onchange,Preventdefault,我正在我的modal中开发签名板jQuery插件。我必须批准一张有我签名的处方。我还有一个默认签名的复选框。如果我在目录中有我的签名的任何图像,它将在模态上显示该图像,并带有默认复选框“checked”。 有两种可能我将有一个默认签名或没有: 1.使用默认签名 2.取消选中该复选框并添加新签名。 如果签名板在任何情况下为空,则表单将不会提交,并将提示错误消息 我对onchange功能有一个问题,当我将复选框状态更改为“取消选中”时,将显示签名板div,如果我将其保留为空并按下保存按钮,则会提示我
$('.already_signed').change(function(event) {
if (this.checked) {
$('.sign').hide(); // hide signaturepad
$(".already_signed").attr("checked", true); // checked the checkbox
$('.default_img').show(); // show the default image
document.getElementById('save').addEventListener("click", function (event) {
$('#sign_image').val(''); // if form is submitted with default signature keep the signature-pad hidden image input empty
document.getElementById('signature_alert').style.display = 'none'; // hide the error message as well
$('#signature_form').submit();
});
} else {
$('.sign').show(); // show signature-pad
$(".already_signed").attr("checked", false); // unchecked the checkbox
$('.default_img').hide(); // hide the default image
// jquery signature
var wrapper = document.getElementById("signature-pad"),
clearButton = wrapper.querySelector("[data-action=clear]"),
savePNGButton = wrapper.querySelector("[data-action=save-png]"),
saveSVGButton = wrapper.querySelector("[data-action=save-svg]"),
canvas = wrapper.querySelector("canvas"),
signaturePad;
signaturePad = new SignaturePad(canvas);
document.getElementById('save').addEventListener("click", function (event) {
if (signaturePad.isEmpty()) {
event.preventDefault();
var timePeriodInMs = 3000;
setTimeout(function()
{
document.getElementById("signature_alert").style.display = "none";
},
timePeriodInMs);
document.getElementById('signature_alert').style.display = 'block';
}
document.getElementById('signature_image').src = signaturePad.toDataURL();
var image = document.getElementById('signature_image').src;
document.getElementById('sign_image').value = image;
});
}
});
我也把申报表弄错了,但还是提交了表格。
我陷入了困境,如果你们能在这方面帮助/指导我,我将不胜感激。
谢谢,当复选框未选中时,请尝试禁用该按钮,当用户开始在记事本上书写时,请启用该按钮
$('.already_signed').change(function(event) {
if (!$("#checkbox").is(":checked")) {
$('input[type=submit]').attr('disabled', 'disabled');
}
});
var canvas = document.querySelector("canvas");
var signaturePad = new SignaturePad(canvas);
signaturePad.onBegin({$('input[type=submit]').removeAttr('disabled');});
如果未选中复选框,请禁用“提交”按钮。我无法禁用它,因为如果复选框未选中,我将在签名板上有过多的签名,然后提交带有新签名图像的表单。请使用“开始”选项重新启用按钮。b能否请您进一步指导我?我的意思是在哪里使用onBegin?我在答案中添加了。。。。请检查…谢谢,我已经检查了文档,我在那里得到了线索。但我有一个问题,如果用户在签名板上签名,然后清除签名板,会发生什么。因为笔划将启用按钮,但签名板仍然是空的。