表单根据输入值提交2个不同的错误 – 1不起作用

我在这里发布了一个关于如何使2个错误工作的问题: 使用输入和提交按钮的Multipile表单与Javascript具有相同的操作

如果输入小于15位,我需要2个错误,1个错误,第二个错误是输入以9900开头(如果输入,则存在错误,然后重定向到不同的页面)。 它工作了一段时间,虽然它突然停止发出第二个错误(如果输入以9900开头),页面是: http : //www.unlocker.co.il/shop/sim-unlock-htc-mobile-device/

每个表单都有自己的id:unlock1,unlock2,unlock3等.JS文件包括:

jQuery(function($){ $('form#unlock1').on('submit', function (e){ if($('form#unlock1 > input.the_imei').val().length == 15){ if($(this).val().indexOf('9900') === 0){ alert('לפי המספר IMEI, ברשותכם מכשיר CDMA, אנא ראו מידע נוסף בעמוד פתיחת מכשירי CDMA'); window.location = 'http://www.unlocker.co.il/sim-unlock-cdma-mobile-device'; e.preventDefault(); } return; } alert('אנא מלאו מספר IMEI בעל 15 ספרות'); e.preventDefault(); }); }) 

表格是:

 

每个表单都有一个不同的id(例如Unlock1),并且在它自己的JS文件中,id就像在2个地方列出的那样。

我无法弄清楚为什么“最小15位”错误有效,但“如果输入以9900开头”错误则不再起作用。

谢谢!

我就是这样做的。 尽量避免使用过多的嵌套if语句。 而是在用户首先输入错误值时,使用return语句创建escape子句。

 $('form#unlock1').on('submit', function(){ var $el = $('form#unlock1 > input.the_imei'); if($el.val().length<15){ //Not enough characters return false; } if($el.val().substring(0,4)=='9900') { //Value begins with 9900 return false; } //User has entered a correct imei });