2013-03-27 4 views
1

На самом деле в JSP странице я использую весной теги и код JQuery .. Услышь мой код ..Как предотвратить отправку формы с помощью jquery?

<form:form action="process"> 

     <p class="forgot"> 
      <a href="login/forgotPassword" class="submit_forgotPassword">Forgot your 
       password?</a> 
     </p> 
     <p class="remember"> 
      <input id="signin_submit" value="Sign in" tabindex="6" type="submit"> 

     </p> 
    </form:form> 

<script> 
    $('#LOGIN').ajaxForm({ 
     target : '#body', 
     success : function(responseText, statusText, xhr, $form) { 
      alert(responseText); 
     }, 
     beforeSubmit : function() { 
      $.blockUI({ 
       message : '<h1> Just a moment...</h1>' 
      }); 
     } 
    }); 
    $('.submit_forgotPassword').click(function(event){ 
     event.preventDefault(); // interrupt default hyperlink behavior 
     $("#LOGIN").attr("action",$(this).attr("href")); 
     $("#LOGIN").submit(); 
    }); 

</script> 

Проблема Submit форма не выполняет требуемое действие

На самом деле мой код имеет два Action 1. submit 2. Forgot Password?

1.First время мы даем правильные значения и нажмите кнопку Отправить это прекрасно работает ..

времени 2. Во-вторых (после щелчка выхода из системы), мы даем EMAILID и нажмите forgot Password? ссылку по электронной почте отправит на указанный адрес электронной идентификатор также прекрасно работает ... Теперь проблема возникла ...

3.3rd время, когда мы даем правильные значения и нажмите кнопку Отправить по электронной почте отправки данной электронной почты (он работает как 2-й шаг) ...

Почему это работает как это, я уточнил каждую форму обработчика кликов ...

Когда когда-либо нажмите forgot password? ссылку каждый раз, когда отправка почты, когда мы даем правильные значения также ...

дать мне предложение ...

+0

'$ ("# LOGIN") представляет(); 'работает точно так же, как' input type = "submit". Таким образом, он отправляет всю форму в действие формы. –

+0

да ..Я отправляю форму, используя hiperlink. Когда hiperlink нажимает эту функцию, я запускаю ... я пишу? –

+0

Здесь вы изменили URL-адрес действия: $ ("# LOGIN"). Attr ("action", $ (this) .attr ("href")); Я думаю, что это резонанс, который он в третий раз забыл забыть действие с паролем. – Sharun

ответ

1

Вы меняете форму действия на «забыли пароль» при нажатии «забыл пароль ". Мы должны вернуть действие формы, чтобы «отправить» ссылку, иначе кнопка «отправить» отправит сообщение в ссылку «забыли пароль».

<script> 

    $('#LOGIN').ajaxForm({ 
     target : '#body', 
     success : function(responseText, statusText, xhr, $form) { 
      alert(responseText); 
     }, 
     beforeSubmit : function() { 
      $.blockUI({ 
       message : '<h1> Just a moment...</h1>' 
      }); 
     } 
    }); 
    $('.submit_forgotPassword').click(function(event){ 
     event.preventDefault(); // interrupt default hyperlink behavior 
     //Save original form submit link before changinf it to forgot password link 
     var submitBtnLink = $("#LOGIN").attr("action"); 
     $("#LOGIN").attr("action",$(this).attr("href")); 
     $("#LOGIN").submit(); 
     //Revert form action to submit link after submitting forgot password 
     $("#LOGIN").attr("action",submitBtnLink); 
    }); 

</script> 

Попробуйте

1

Мое предложение было бы не использовать форму Войти действие в качестве обработчика забыли пароль.

$("#LOGIN").attr("action",$(this).attr("href")); 
     $("#LOGIN").submit(); 

Если у вас есть страница с записям пароля, почему бы не просто перенаправить на эту страницу и обработать запрос оттуда?

Путаница может быть, что ваш используя ajaxForm плагин, который предлагает использовать для отправки формы:

// attach handler to form's submit event 
$('#myFormId').submit(function() { 
    // submit the form 
    $(this).ajaxSubmit(); 
    // return false to prevent normal browser submit and page navigation 
    return false; 
}); 

Я бы относиться пароль сброса в виде отдельного запроса и захватить любые paramters вы хотите использовать как имя пользователя, как такие данные:

var queryString = $('#myFormId').formSerialize(); 

Это зависит от того, чего вы хотите достичь. Можете ли вы объяснить, почему вы отправляете форму с действием сброса пароля?

Использование JSP не имеет никакого значения, я вижу.

+0

Спасибо за ваш повтор .. я отдам голос .. –

1

Вы изменили представить ссылку:

$('.submit_forgotPassword').click(function(event){ 
     event.preventDefault(); // interrupt default hyperlink behavior 
     $("#LOGIN").attr("action",$(this).attr("href")); 
     $("#LOGIN").submit(); 
    }); 

Так что вам нужно будет сбросить URL на отправить нажмите:.

$('#signin_submit').click(function(event){ 
     event.preventDefault(); // interrupt default hyperlink behavior 
     $("#LOGIN").attr("action","login/processLogin"); 
     $("#LOGIN").submit(); 
    }); 
Смежные вопросы