禁用表单';行动';如果jquery验证失败

禁用表单';行动';如果jquery验证失败,jquery,validation,jquery-validate,Jquery,Validation,Jquery Validate,我试图完成我的网页的购物车,我遇到了最后一个问题。“添加到购物车”按钮旁边有一个文本框,要求在完成购买之前输入特定的硬件密钥(指纹)。我需要对其进行设置,以便最终用户在验证该字段之前不能单击“添加到购物车” $('#myFingerprint').submit(function (e) { if(!all_of_my_validation_passed) { e.preventDefault(); } }); 我已经成功地设置了验证,使文本框成为必需的,并且只允

我试图完成我的网页的购物车,我遇到了最后一个问题。“添加到购物车”按钮旁边有一个文本框,要求在完成购买之前输入特定的硬件密钥(指纹)。我需要对其进行设置,以便最终用户在验证该字段之前不能单击“添加到购物车”

$('#myFingerprint').submit(function (e) {
    if(!all_of_my_validation_passed) {
        e.preventDefault();
    }
});
我已经成功地设置了验证,使文本框成为必需的,并且只允许特定的字符串,但是在文本框成功验证之前,我似乎无法想出如何动态地“禁用”表单操作

$('#myFingerprint').submit(function (e) {
    if(!all_of_my_validation_passed) {
        e.preventDefault();
    }
});
以下是我的jquery:

<script>
$(document).ready(function() {

$.validator.addMethod("os0", function(value) {
    return /^(([a-fA-F0-9]{4,4})+\-([a-fA-F0-9]{4,4}))$/.test(value); 
    }, "Invalid Fingerprint.");     

$("#myFingerprint").validate({  
     rules: {
        os0: "required os0",
    },      
  });
});
</script>

$(文档).ready(函数(){
$.validator.addMethod(“os0”,函数(值){
返回/^([a-fA-F0-9]{4,4})+\-([a-fA-F0-9]{4,4}))$/.test(值);
},“无效指纹”);
$(“#myFingerprint”).validate({
规则:{
os0:“必需的os0”,
},      
});
});
下面是相应的HTML:(表单代码是从我们的电子商务提供商处复制粘贴的)


指纹:

您可以为表单提供一个
onsubmit
方法,然后让该方法在表单未验证时取消表单提交

$('#myFingerprint').submit(function (e) {
    if(!all_of_my_validation_passed) {
        e.preventDefault();
    }
});

马丘,你是个救生员。这很有魅力

不过我确实有一件奇怪的事。添加该脚本后,当输入有效的硬件密钥并单击“添加到购物车”时,我的购物车现在会在新的浏览器选项卡中打开,而不是在同一窗口中弹出。有什么想法吗?以防万一,我的新html表单代码如下所示:

<form id="myFingerprint" action="https://www.e-junkie.com/ecom/gb.php?c=cart&i=770678&cl=122992&ejc=2"  method="POST" onSubmit="return function(e)" target="ej_ejc" accept-charset="UTF-8">


对于这些简单的问题,我深表歉意。我还是javascript/jquery的新手。您的表单具有
target
属性,这将导致它在一个内部名为“ej_ejc”的新选项卡中打开。只有当你真的想要它的时候,你才应该拥有它。同样,当一个答案回答了你的问题时,一定要点击旁边的复选标记,这样海报就会得到好评:)谢谢!当然可以。谢谢你的提醒!