2013-09-30 4 views
0

Я хочу сделать другую функцию, когда я отправляю форму с другой кнопки. Моя форма следующая.Идентифицировать кнопку отправки в форме от jQuery

<form action="status_submit" method="get" accept-charset="utf-8"> 
    <button type="submit" name="approve">Approve</button> 
    <button type="submit" name="reject">Reject</button> 
    <button type="submit" name="cancel">Cancel</button> 
</form> 

Я пробовал следующий код. Но не работает.

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('form').submit(function(event) { 
      var val = $("button[type=submit][clicked=true]").attr('name'); 

      alert(val); 

      if (val == 'approve') { 
       alert('approve'); 
      } else if (val == 'reject') { 
       alert('reject'); 
      } else if (val == 'cancel') { 
       alert('cancel'); 
      } 

      return false; 
     });   
    }); 
</script> 

Always val in undefined. Как мне это сделать?

+0

возможно дубликат [JQuery привязки отправить событие - найти вызывающего абонента] (http://stackoverflow.com/questions/3776033/jquery-bind-submit-event-find-caller) – Kippie

ответ

0

Используйте $(this) ссылаться на нажмите кнопку.

<script type="text/javascript"> 
$(document).ready(function() { 
    $('form button[type="submit"]').click(function(event) { 
     var val = $(this).attr('name'); 

     alert(val); 

     if (val == 'approve') { 
      alert('approve'); 
     } else if (val == 'reject') { 
      alert('reject'); 
     } else if (val == 'cancel') { 
      alert('cancel'); 
     } 

     // Submit form 
     $('form').submit(); 

     return false; 
    });   
}); 
</script> 
0

Вы не можете отслеживать его так .... решение может быть это использовать обработчик щелчка для кнопок

Раствором дампа может быть

$(document).ready(function() { 

    $('button[name="approve"]').click(function(){ 
     //do stuff 
     $(this).addClass('clicked'); 
    }) 
    $('button[name="reject"]').click(function(){ 
     //do stuff 
     $(this).addClass('clicked'); 
    }) 
    $('button[name="cancel"]').click(function(){ 
     //do stuff 
     $(this).addClass('clicked'); 
    }) 

    $('form').submit(function(event) { 
     var val = $("button.clicked[type=submit]").attr('name').removeClass('clicked'); 

     alert(val); 

     if (val == 'approve') { 
      alert('approve'); 
     } else if (val == 'reject') { 
      alert('reject'); 
     } else if (val == 'cancel') { 
      alert('cancel'); 
     } 

     return false; 
    });   
}); 
Смежные вопросы