2017-02-16 27 views
7

Xin chào Tôi đã triển khai mã trong đó thêm vào giỏ hàng sẽ thêm và một cửa sổ bật lên sẽ hiển thị mục giỏ hàng. Trên máy tính để bàn, nó hoạt động tốt nhưng trên thiết bị di động, nó không hoạt động. Đối với thiết bị di động đó là shoeing lỗi nhưTham chiếu không bắt buộcLỗi: giá trị hiển thị không được xác định (Chỉ dành cho thiết bị di động)

Uncaught ReferenceError: showvalue is not defined 

Đây là mã dưới đây của tôi

<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();  
} 

Html phía trên ascx trang

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

cs My side code (Thông qua tổng số và productquantity)

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

Tôi đang gặp sự cố chỉ dành cho thiết bị di động. Khi nhấp vào nút, trang của tôi nhận được làm mới và bật lên không mở được

+0

Tôi không quen với asp.net, nhưng trong điện thoại di động jquery ví dụ bạn có "click" và "tap" như các sự kiện riêng biệt, có thể một cái gì đó như thế này là vấn đề? – Gunnar

+0

tôi không thấy bất kỳ mã nào gọi hàm của bạn 'showvalue()' –

+0

@Anant Tôi gọi từ mã .cs –

Trả lời

1

Tôi đã xóa cửa sổ bật lên jquery và sử dụng cửa sổ bật lên Ajax Modal. Cửa sổ bật lên đang mở tốt như tôi đã gọi nó từ phía .cs nhưng để ẩn nó tự động sau 5 giây, nó không hoạt động trong trường hợp đó tôi đã sử dụng mã bên dưới.

<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> 

Kịch bản của tôi

<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> 

Mã này đang làm việc trong tất cả các trình duyệt và tất cả các điện thoại di động bao gồm iphone & Android

0.123.

Tôi cũng nghĩ (Theo câu hỏi thực tế) rằng trong trường hợp nếu tôi không loại bỏ jquery popup và chỉ đặt mã dưới đây bật lên tôi đã bắt đầu làm việc trong điện thoại di động quá

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

Đảm bảo rằng tập lệnh của bạn được hiển thị trước khi gọi RegisterClientScriptBlock. Phân tích cú pháp HTML là tuyến tính.

+0

Nếu tập lệnh là không được khởi tạo đúng cách vì sao nó hoạt động trên máy tính để bàn? –

+0

Tôi không chắc liệu thứ tự hiển thị/xây dựng có giống nhau trên thiết bị di động hay không. Lỗi nói rằng định nghĩa phương thức không thể được tìm thấy. hãy thử điều này: alert (showvalue); – Dexion

0
  • Bạn có quên sao chép thẻ đóng hoặc bạn cũng không thực hiện trên mã không?

Nó nên là:

<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> 
  • Hãy thử cách tiếp cận khác:

Trong javascript:

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

Trong C#:

protected string cName() { 
    return "examplevarcontent"; 
} 
Các vấn đề liên quan