Кнопка отправки сообщения jquery ajax call click

Я должен создать ajax-вызов, когда пользователь нажимает кнопку отправки, поэтому я включил jquery, и я написал следующий код (взятый из документации jquery):

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script>
$(document).ready(function(){
  $("Shareitem").click(function(e){
      e.preventDefault();
    $.ajax({type: "POST",
            url: "/imball-reagens/public/shareitem",
            data: { id: $("Shareitem").val(), access_token: $("access_token").val() },
            success:function(result){
      $("sharelink").html(result);
    }});
  });
});
</script>

Html:

<div id="sharelink"></div>
[...]
<input type="hidden" name="id" value="" id="id"></dd>
<dd id="access_token-element">
<input type="hidden" name="access_token" value="xxxxxxxx" id="access_token"></dd>
<dt id="Shareitem-label">&#160;</dt><dd id="Shareitem-element">
<input type="submit" name="Shareitem" id="Shareitem" value="UpdatedByPreviousAjaxCall"></dd></dl></form>

Проблема заключается в следующем: выполняется действие отправки, но вызов ajax отсутствует, поэтому форма выполняет запрошенное действие отправки вместо того, чтобы оставаться на одной странице и обновлять содержимое требуемого "div".

Что мне не хватает? Где я ошибаюсь? Заранее благодарим за любой отзыв.

Ответ 1

Вы не добавили # перед идентификатором кнопки. У вас нет правильного селектора в вашем jquery-коде. Поэтому jquery никогда не выполняется при нажатии кнопки. он отправил вашу форму напрямую, не передавая какой-либо запрос ajax.

См. документацию: http://api.jquery.com/category/selectors/
его твой друг.

Попробуйте следующее:

Кажется, что id: $("#Shareitem").val() неверно, если вы хотите передать значение

<input type="hidden" name="id" value="" id="id">

вам нужно изменить эту строку:

id: $("#Shareitem").val()

id: $("#id").val()

Все вместе:

 <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    <script>
    $(document).ready(function(){
      $("#Shareitem").click(function(e){
          e.preventDefault();
        $.ajax({type: "POST",
                url: "/imball-reagens/public/shareitem",
                data: { id: $("#Shareitem").val(), access_token: $("#access_token").val() },
                success:function(result){
          $("#sharelink").html(result);
        }});
      });
    });
    </script>