如何执行单击以使用AJAX Post / Put调用href:tel?

时间:2016-09-12 10:33:33

标签: jquery ajax

如何在默认浏览器点击之前发帖?默认浏览器操作会停止发布操作。我没有在console.log中获取数据。

<a id="callButton" class="btn btn-lg btn-success" href="tel:+1-999-115-4490">Call Customer Support/a>
$(document).ready(function(){
    $("#callButton").click(function(){

        $.ajax({
            type: 'POST',
            url: 'foo',
            data: 'ok',
            success: function(data) {
                console.log(data);

            }
        });
    });
});

4 个答案:

答案 0 :(得分:1)

要实现此目的,您需要使用preventDefault()来阻止默认事件。然后在AJAX的回调中,您可以重定向到href元素中指定的a。试试这个:

$("#callButton").click(function(e) {
    e.preventDefault(); // stop the default event
    var $a = $(this);
    $.ajax({
        type: 'POST',
        url: 'foo',
        data: 'ok',
        success: function(data) {
            window.location.assign($a.attr('href')); // redirect to the URL after the AJAX completes.
        }
    });
});

答案 1 :(得分:1)

使用event.preventDefault();然后使用$("callbutton").unbind("click", preventDefault);

重新启用它
$(document).ready(function(){
    $("#callButton").click(function(e){
        e.preventDefault();
        var self = this;
        $.ajax({
            type: 'POST',
            url: 'foo',
            data: 'ok',
            success: function(data) {
                console.log(data);
                $(self).unbind('click', preventDefault());
            },
            error: function(jqXHR) {
                $(self).unbind('click', preventDefault());
            }
        });
    });
});

答案 2 :(得分:1)

您需要致电e.preventDefault();以停用默认浏览器行为,获取href值并将其与window.location.href一起使用,如下所示:

$(function(){
  $("#callButton").click(function(e){
    // Prevent default click behaviour
    e.preventDefault();

    // Get the link
    var link = $(this).attr("href");

    // Post data
    setTimeout(function() {
      $.ajax({
        type: "POST",
        url: 'https://posttestserver.com/post.php',
        data: "ok",
        success: function(data) {
          console.info(data);
        }
      });
    }, 1);

    // Click the link    
    window.location.href = link;
  });
});

答案 3 :(得分:0)

你可以绑定所有href =&#34; tel:*&#34;使用以下代码

的属性标签
snsclient = boto3.client('sns')
num = random.randrange(1000, 9999, 4)
res = snsclient.publish(
    # TopicArn='arn:aws:sns:us-east-1:841538128291:MySNSTopic',
    # TargetArn='string',
    PhoneNumber='phone number',
    Message='Your random 4 digit password is : ' + str(num),
    # Subject='string',
    # MessageStructure='string',
    # MessageAttributes={
    # 'string': {
    #   'DataType': 'string',
    #  'StringValue': 'string',
    # 'BinaryValue': 'bytes'
    # }
    # }
)