2013-12-24 4 views
0

Как отправить форму, нажав элемент?Как отправить форму, нажав на элемент привязки

Я пробовал код ниже, но Chrome отправляет его с помощью метода http GET. Как исправить это, чтобы форма была отправлена ​​с использованием метода POST?

<html> 
<body> 
    <form id="_form" method='post' target='_blank'> 
     <input type="email" value="[email protected]" name="_email" /> 
     <a href='SendEMail?_entity=DokGReport&amp;_dokumnrs=135361' 
      id='sendemail' class='button'> 
      Send 
     </a> 
    </form> 

    <script> 
     $(function() { 
      $('#sendemail').button({ icons: { primary: "ui-icon-mail-closed" } }) 
       .click(function() { 
        $('#_form')[0].action = $(this).attr('href'); 
        $('#_form')[0].submit(); 
       }); 

     }); 
    </script> 
</body> 
</html> 
+0

хмм ... попробуйте добавить '_entity' и другой ваш Params как скрытый вход поля, т. е. '' и т. д. и удалить их из URL-адреса действия. – Derek

+0

Почему бы не определить действие формы как атрибуты формы? – Daiwei

+0

@ Daiwei Я угадаю: в реальном приложении может быть несколько ссылок, поэтому действие зависит от того, на какой он нажимает. – Barmar

ответ

2

Вы должны предотвратить действие по умолчанию, нажав на якоре, который должен пройти по ссылке:

$(function() { 
     $('#sendemail').button({ icons: { primary: "ui-icon-mail-closed" } }) 
      .click(function (e) { 
       e.preventDefault(); // Don't follow the link normally 
       $('#_form').attr('action', $(this).attr('href')).submit(); 
      }); 

    }); 
+0

Я разместил связанный вопрос в http://stackoverflow.com/questions/20767487/how-to-force-validation-of-input-type-email-element-before-form-posting-from-anc – Andrus

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