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

时间:2015-02-21 15:43:03

标签: javascript php jquery html forms

我在这里发布了一个关于如何处理2个错误的问题:Multipile forms with input and submit button with the same action with Javascript

我需要2个错误,如果输入小于15位,则输出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();
});   
})

和表格是:

<form id="unlock1" class="cart" enctype="multipart/form-data" method="post" name="unlock"> <input class="the_imei" style="width: 80%; border-radius: 15px;" name="the_imei" type="text" value="" placeholder="מספר סידורי IMEI של המכשיר (חייג #06#*)" /> <input class="add-to-cart" name="add-to-cart" type="hidden" value="39" /> <button class="unlockButton" type="submit" value="submit">פתח לכל הרשתות בישראל </button> </form>

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

我无法弄清楚为什么&#34;最少15位&#34;错误有效,但是&#34;如果输入以9900&#34;错误不再起作用。

谢谢!

1 个答案:

答案 0 :(得分:0)

我就是这样做的。尽量避免使用过多的嵌套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
});