Javascript 在单击提交按钮之前,如何检查是否生成了图像?
我正在创建一个ASP.NET MVC5应用程序,利用它捕获用户的签名。如果您不熟悉该插件,则如下所示: 当用户单击“保存”时,他们的签名图像将生成并保存在签名板正下方的Javascript 在单击提交按钮之前,如何检查是否生成了图像?,javascript,jquery,asp.net-mvc,unobtrusive-validation,jsignature,Javascript,Jquery,Asp.net Mvc,Unobtrusive Validation,Jsignature,我正在创建一个ASP.NET MVC5应用程序,利用它捕获用户的签名。如果您不熟悉该插件,则如下所示: 当用户单击“保存”时,他们的签名图像将生成并保存在签名板正下方的中: 我想做一些前端验证,以确保用户在提交整个表单之前已单击“保存”,从而生成签名图像。如果可能的话,我希望使用jQuery来实现这一点。我有一个我认为这段代码应该是什么样子的伪代码模型,但我很难将其转化为实际使用: $("#entireFormSubmitButton").click(function(){ if($(
中:
我想做一些前端验证,以确保用户在提交整个表单之前已单击“保存”,从而生成签名图像。如果可能的话,我希望使用jQuery来实现这一点。我有一个我认为这段代码应该是什么样子的伪代码模型,但我很难将其转化为实际使用:
$("#entireFormSubmitButton").click(function(){
if($("#imageOfSignature").doesNotExistOnPage){
alert("Your signature is required before submitting this form");
// also block the user from submitting form until signature provided
}
});
由于ASP.NET已经为我完成了确保填写完所有其他必填字段的大部分工作,因此我在编写此自定义前端验证时遇到了问题。我能得到一些帮助将其转换为工作代码吗?这几乎完美地工作了!我现在遇到的问题是,此代码是表单的唯一前端验证。换句话说,在要求用户提供出生日期之前,现在用户可以绕过提供该信息,只要他们保存签名。有什么办法可以解决这个问题吗?您可以在后端执行更严格的验证。但是,如果你想从前端做这件事,我已经在我编辑的文章中给你举了一个如何做的例子。
$("#entireFormSubmitButton").click(function(e){
//block the user from submitting and check for signature
e.preventDefault();
if( $("#imageOfSignature").length == 0 ||
$("#imageOfSignature").attr("src") == "" ||
$("#date-of-birth-input").val() == ""){
alert("Your message");
} else {
//all good, an image exists
$(this).closest('form').submit();
}
});