jQuery技术:成功validation后,jQuery将数据发布到服务器

这是我的jQuery代码段

$("#saveBankDetails").click(function(){ if($('#firstBankDetail').is(':visible')) { return validateFirstBankDetails(); } if($('#secondBankDetail').is(':visible')) { return validateSecondBankDetails(); } if($('#thirdBankDetail').is(':visible')) { return validateThirdBankDetails(); } if($('#fourthBankDetail').is(':visible')) { return validateFourthBankDetails(); } }); 

如果元素firstBankDetail,secondBankDetail等可见,我想要实现的是执行validation。 validateFirstBankDetailsvalidateSecondBankDetails都是javascript函数。

我已经使用return来避免在validation失败时将数据发布到服务器。 但是,如果validateFirstBankDetails()返回true,那么似乎会发布数据,因此代码不会向前移动。 我需要做哪些修改才能使代码向前推进并对secondBankDetail应用validation?

    将结果收集到单个变量:

     $("#saveBankDetails").click(function(){ var restult = true; if($('#firstBankDetail').is(':visible')) { result &= validateFirstBankDetails(); } if($('#secondBankDetail').is(':visible')) { result &= validateSecondBankDetails(); } if($('#thirdBankDetail').is(':visible')) { result &= validateThirdBankDetails(); } if($('#fourthBankDetail').is(':visible')) { result &= validateFourthBankDetails(); } return result; }); 

    在这种情况下,如果至少一次validation失败 – 整个表单validation将失败。

    PS更好地订阅form提交事件并在那里处理validation: 防止表单上的默认值提交jQuery

    如果validation失败

     return false 

    将其添加到click事件的末尾。

    给这些元素一个class ,然后循环它们:

     $("#saveBankDetails").click(function(){ var all_elements = $('.newClass'); all_elements.each(function () { if (!$(this).is(':visible')) { //do something if not visible return false; } }); }); 

    你也可以试试这个

     $("#saveBankDetails").click(function(){ var result = false; if($('#firstBankDetail').is(':visible')) { result = validateFirstBankDetails(); } if($('#secondBankDetail').is(':visible')) { result = validateSecondBankDetails(); } if($('#thirdBankDetail').is(':visible')) { result = validateThirdBankDetails(); } if($('#fourthBankDetail').is(':visible')) { result = validateFourthBankDetails(); } return result; }); 

    按照@Samich的建议,我想出了这个解决方案。 它工作正常。

     $('form').submit(function (event) { if($('#firstBankDetail').is(':visible')) { if(!validateFirstBankDetails()){ event.preventDefault(); } } if($('#secondBankDetail').is(':visible')) { if(!validateSecondBankDetails()){ event.preventDefault(); } } if($('#thirdBankDetail').is(':visible')) { if(!validateThirdBankDetails()){ event.preventDefault(); } } if($('#fourthBankDetail').is(':visible')) { if(!validateFourthBankDetails()){ event.preventDefault(); } } }); 

    它也更容易

      $("#saveBankDetails").click(function(){ if($('#firstBankDetail').is(':visible')) { return validateFirstBankDetails(); } if($('#secondBankDetail').is(':visible')) { return validateSecondBankDetails(); } if($('#thirdBankDetail').is(':visible')) { return validateThirdBankDetails(); } if($('#fourthBankDetail').is(':visible')) { return validateFourthBankDetails(); } return false; }); 

    如果您不想将控制权返回给服务器,则可以添加return false;

     $("#saveBankDetails").click(function(){ var result = 0; var visible = 0; if($('#firstBankDetail').is(':visible')) { result = result + ( 1 & validateFirstBankDetails()); visible++; } if($('#secondBankDetail').is(':visible')) { result = result + ( 1 & validateFirstBankDetails()); visible++; } if($('#thirdBankDetail').is(':visible')) { result = result + ( 1 & validateFirstBankDetails()); visible++; } if($('#fourthBankDetail').is(':visible')) { result = result + ( 1 & validateFirstBankDetails()); visible++; } if(result == visible) {return true;} else{return false;} }); 

      以上就是jQuery教程分享成功validation后,jQuery将数据发布到服务器相关内容,想了解更多jQuery开发(异常处理)及jQuery教程关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/jquerytutorial/558654.html

      (0)
      上一篇 2021年1月27日
      下一篇 2021年1月27日

      精彩推荐