如何将参数从链接传递给jquery方法

时间:2013-02-26 11:27:02

标签: javascript jquery

当用户点击链接时,我需要触发JQuery方法,并调用位于/Project/Send/SendMethod的Web服务。当我点击send链接时,该方法被触发,我知道这一点,因为警报正在显示。但问题是如何调用webservice。如果它是POST方法,那就太好了。

<a href='' id='2' class='send'> Send  </a>

Jquery方法

   $(function () {
        $('.send').click(function () {
            alert(this.id);

        });
    });

4 个答案:

答案 0 :(得分:1)

使用$.ajax()方法并指定网址和选项,例如jQuery Ajax

$(function() {
    $('.send').click(function (e) {
        e.prevenDefault();
       $.ajax({
          url: "Project/Send/SendMethod",
          type: "POST",
          data: values,
          success: function(){
                  alert("success");
                  $("#result").html('submitted successfully');
          }
       });
    });
});

答案 1 :(得分:1)

使用jQuery $.post

 $(function () {
    $('.send').click(function () {
        alert(this.id);
        $.post(url, {'id':this.id}, function (response) {
            //do the result oriented activities
        });
    });
});

答案 2 :(得分:1)

您可以在jQuery中使用$.ajax() api。此外,您必须防止隐藏链接中的默认行为。否则,您将更改页面而不是发送ajax requset。

$('.send').click(function (event) {
    event.preventDefault();
    $.ajax( {
        url:"Project/Send/SendMethod",
        type: "POST",
        data: { "id": this.id },
        success:function(data) {
            alert(data);
        }
    });
});

如果你使用的是jQuery 1.8+,那么从jQuery 1.8开始就不推荐使用“success”回调。你应该使用“完成”http://api.jquery.com/deferred.done/

$('.send').click(function (event) {
    event.preventDefault();
    $.ajax( {
        url:"Project/Send/SendMethod",
        type: "POST",
        data: { "id": this.id }
    }).done(function( data) {
        alert(data);
    });
});

答案 3 :(得分:0)

我使用jQuery的ajax()功能(并经常这样做)。

以下示例假设您将获得JSON格式的响应。如果您要返回完整的HTML页面,可以更改此内容...请查看http://api.jquery.com/jQuery.ajax/了解详情。

$(function () {
    $('.send').click(function (e) {
        e.stopPropagation();
        e.preventDefault();
        var thisId = $(this).attr('id');
        alert(thisId);
        var hostAndPort = window.location.protocol + "//" + window.location.hostname + ":" + window.location.port; // current page and protocol (http or https)
        var requestUrl = hostAndPort + "/Project/Send/SendMethod/";
        var str_address = requestUrl + 'id?=' + thisId;
        $.ajax({
            url: str_address,
            contentType: 'application/json',
            dataType: 'JSON',
            type: 'POST',
            success: function (response) {
                console.log(response);
                // do something...
            },
            error: function (e) {
                // handle error
            }
        });
    });
});