【问题标题】:jQuery code doesnt work when i remove alert from my code?当我从我的代码中删除警报时,jQuery 代码不起作用?
【发布时间】:2014-04-17 19:53:51
【问题描述】:

我正在使用 jQuery 加载方法加载数据。它工作正常。现在我想将其与 2 相乘。例如,如果我有 1000,我想将其与 2 相乘,这样它将变为 2000。只有当我在代码中包含警报时它才能正常工作。如果我删除警报,它会返回 1000。

这是我的代码

$('#<%= qnty.ClientID %>').click(function () {


            var desID = $('#<%= designID.ClientID %>').val();
            var qnty = $('#<%= qnty.ClientID %>').val();

            $("#amountHave").load("AmountRetrieve.aspx?desID=" + desID + "&qnty=" + qnty + " #amountHaveRet");
                if ($("#reverseDes").is(":checked") || $("#plain").is(":checked")) {
                    var slash = ".00/-";
                    var getAmnt = $("#amountHave").text();
                    getAmnt = getAmnt.replace(slash, '');

                    var finamAmount = parseInt(getAmnt, 10) + parseInt(getAmnt, 10);                    
                    //IF I USE ALERT HERE IT WORKS
                    //alert(finamAmount)
                    $("#amountHave").text(finamAmount + slash);

                }                   
                else {
                    $("#blackholder").text("-------- Rs. " + $("#<%= qnty.ClientID %>").val());
                    $("#matchholder").text("-------- Rs. " + $("#<%= qnty.ClientID %>").val());

                }


        });

任何帮助将不胜感激。

【问题讨论】:

  • AJAX 中的 A = 异步。
  • 竞争条件的可能性?
  • 它与 alert() 一起工作正常,但是当我删除它时,它不显示相乘的值,,,

标签: javascript jquery alert jquery-load


【解决方案1】:

你忘记了你的回调:

$("#amountHave").load("AmountRetrieve.aspx?desID=" + desID + "&qnty=" + qnty + " #amountHaveRet", function(){
    if ($("#reverseDes").is(":checked") || $("#plain").is(":checked")) {
        var slash = ".00/-";
        var getAmnt = $("#amountHave").text();
        getAmnt = getAmnt.replace(slash, '');
        var finamAmount = parseInt(getAmnt, 10) + parseInt(getAmnt, 10);
        $("#amountHave").text(finamAmount + slash);
    }                   
    else {
        $("#blackholder").text("-------- Rs. " + $("#<%= qnty.ClientID %>").val());
        $("#matchholder").text("-------- Rs. " + $("#<%= qnty.ClientID %>").val());
    }
});

【讨论】:

    【解决方案2】:

    由于您使用的是 ajax(异步),因此您必须等到服务器响应,因此您必须将代码放入回调函数中,该回调函数将在服务器响应时调用。

    文本未设置,因为代码在服务器有时间响应之前已经执行,显示警报的额外秒数为服务器购买了足够的响应时间。

     $("#amountHave").load("AmountRetrieve.aspx?desID=" + desID + "&qnty=" + qnty + " #amountHaveRet", function () {
         if ($("#reverseDes").is(":checked") || $("#plain").is(":checked")) {
             var slash = ".00/-";
             var getAmnt = $("#amountHave").text();
             getAmnt = getAmnt.replace(slash, '');
    
             var finamAmount = parseInt(getAmnt, 10) + parseInt(getAmnt, 10);
             //IF I USE ALERT HERE IT WORKS
             //alert(finamAmount)
             $("#amountHave").text(finamAmount + slash);
    
         } else {
             $("#blackholder").text("-------- Rs. " + $("#<%= qnty.ClientID %>").val());
             $("#matchholder").text("-------- Rs. " + $("#<%= qnty.ClientID %>").val());
    
         }
     });
    

    【讨论】:

    • 真诚感谢您提供这些信息。我学到了很多。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    相关资源
    最近更新 更多