未捕获的ReferenceError:未定义显示值(仅适用于移动设备)

时间:2017-02-16 14:32:55

标签: javascript jquery asp.net mobile

您好我已经实现了一个代码,在该代码中,添加到购物车时项目会添加,并且还会打开一个弹出窗口,显示购物车项目。 在桌面上它运行良好,但在移动设备上它不工作。 对于移动设备来说,它是错误的

Uncaught ReferenceError: showvalue is not defined

以下是我的以下代码

<script type="text/javascript">  
function showvalue(value, product) {

    $('#<%= lblproduct1.ClientID %>').text(product);
    $('#<%= lblVessel.ClientID %>').text(value);
    $('.cart_popup').show();
    setTimeout(function () {
        $('.cart_popup').fadeOut('slow');
    }, 5000);
    return false;
}
function Showprogress() {               
    $('#<%= Progress.ClientID %>').show();      
 }

.ascx页面上的Html侧

<asp:Button ID="AddToBasketButton" OnClientClick="Showprogress()" runat="server" OnClick="AddToBasketButton_Click" EnableViewState="false" ValidationGroup="AddToBasket" Text="Add to Cart" />

我的.cs边码(传递总数和产品数量)

ScriptManager.RegisterClientScriptBlock(this.Page, typeof(UpdatePanel), UniqueID, "showvalue('" + Total + "','" + productquantity + "');", true);

我只面临移动设备的问题。 点击按钮,我的页面刷新,弹出窗口没有打开

3 个答案:

答案 0 :(得分:1)

我删除了jquery弹出窗口并使用了Ajax Modal弹出窗口。 弹出窗口打开正常,因为我从.cs方面调用它,但是在5秒之后自动隐藏它,在那种情况下我没有使用下面的代码。

<asp:Button ID="AddToBasketButton"  OnClientClick="Showprogress();" runat="server" OnClick="_Click" Text="button" />//button click and onclient click 
//Below div is only showing processing image :-)
<div id="Progress" runat="server" style="display: none;">
<img src="../images/spinner.gif" />
</div>

我的剧本

<script type="text/javascript">
$(document).ready(function () { hide_pop(); });

function Showprogress() {       
    $('#<%= Progress.ClientID %>').show();
    hide_pop();
    return false;
}
function hide_pop() {
    setTimeout(function () {
        $('.popup_cart_main').fadeOut('slow');//Popup Panel class
        $('.modalBackground').fadeOut('slow');//Background blacklayout Class
    }, 5000);       
    return false;
}

Modalpopup

<asp:LinkButton ID="lnkDummy" runat="server" ></asp:LinkButton>
<cc1:ModalPopupExtender ID="ModalPopupExtender1" BehaviorID="mpe" runat="server"
PopupControlID="pnlPopup" TargetControlID="lnkDummy" BackgroundCssClass="modalBackground" >
</cc1:ModalPopupExtender>
<asp:Panel ID="pnlPopup" runat="server" CssClass="popup_cart_main" Style="display: none">
<div class="cart_popup" >               
      Solved         
        </div>
 </asp:Panel>

此代码适用于所有浏览器和所有移动设备,包括iphone&amp;的Android

我也认为(根据实际问题)如果我没有删除jquery弹出窗口并且只放在代码下方,我的弹出窗口也开始在移动设备上工作

 $(document).ready(function () { showvalue (); });// based on actual question

答案 1 :(得分:0)

确保在调用RegisterClientScriptBlock之前呈现脚本。 HTML解析是线性的。

答案 2 :(得分:0)

  • 您是否错过了复制结束标记,或者您在代码上也没有这样做?

应该是:

<script type="text/javascript">  
function showvalue(value, product) {

    $('#<%= lblproduct1.ClientID %>').text(product);
    $('#<%= lblVessel.ClientID %>').text(value);
    $('.cart_popup').show();
    setTimeout(function () {
        $('.cart_popup').fadeOut('slow');
    }, 5000);
    return false;
}
function Showprogress() {               
    $('#<%= Progress.ClientID %>').show();      
 }
</script>
  • 尝试另一种方法:

在javascript中:

<script type="text/javascript"> var jName = '<%=cName()%>'</script>

在c#中:

protected string cName() {
    return "examplevarcontent";
}