2013-09-24 2 views
0

Я застрял в этой проблеме, когда, когда я обнаруживаю идентичное значение, когда он находится в режиме отправки и запускается ошибка, кнопка не имеет значения, как при ее сохранении. Может ли кто-нибудь помочь мне в этой ситуации?после закрытия окна предупреждения, кнопка отправки не может быть нажата.

Heres мой Jquery

$("#btnSaveShift").on('click', function (e) { 

     var gvDetDDLs = $('#positionShiftGrid').find("input[name=shiftDay]"); 
     $.each(gvDetDDLs, function() { 
      var duplicateExists = false; 
      var ddlShift = $("#ddlShiftDay option:selected").text(); 
      var currVal = $(this).val(); 
      gvDetDDLs.not(this).each(function() { 
       if (ddlShift == currVal) { 
        duplicateExists = true; 
       } 
      }); 
      if (duplicateExists) { 
       alert("Duplicate entry is not allowed"); 
       e.preventDefault(); 
       return false; 
      } 

     }); 
     return true; 

    }); 
+0

и как выглядит ваш html? – Novocaine

+0

вы можете использовать обработчик события onsubmit, поэтому вам не нужно вызывать preventdefault(), просто верните true или false – Shadow

+0

вы не сравниваете ничего, что найдено в 'gvDetDDLs.not (this)' вместо этого вы просто сравниваете 'ddlShift = = currVal', который находится вне цикла! почему вам нужен этот цикл? – rps

ответ

1

В первой, вы должны проверить это на подчиненной формы, а не нажать на кнопку.

В этом случае e.preventDefault убивает поведение кнопки.

+1

+1 для убийства !! –

+0

:) Helpfull & funny – mcamier

+0

hmm. , сделать проверку на форму submit.on form submit, то же самое произойдет. после появления предупреждающего сообщения. , кнопка отправки не работает/не может быть нажата. –

0

Если вы хотите, чтобы ваша кнопка работала даже после устранения ошибки, отключите значение по умолчанию и верните false в свой код

+0

после удаления возвратов, цикл не остановится, когда условие истинно. –

+0

можете ли вы поместить его на jsfiddle? –

Смежные вопросы