2016-02-15 70 views
0

我在我的網站上使用MVC,並且在窗體上使用「onclick」時遇到麻煩。這裏是我的代碼:Iphone設備上的jquery onclick

using (@Html.BeginForm("findpost", "keyword", FormMethod.Post, new { id = "mainForm" })) 
        { 
         <button type="submit" class="btn-submit" name="s" onclick="showupdate();"></button> 
         <input name="query" type="text" id="query" value="@Model.search" placeholder=" ex: iPod"> 
         <input type="hidden" name="pos" value="" /> 
         <input type="hidden" name="dis" value="" /> 
        } 

的showupdate();在加載結果頁面時顯示一個gif。這是工作得很好的桌面& Android設備。搜索在iPhone上有奇怪的行爲。它只考慮我輸入的第一個關鍵字(來自主頁)。如果我刪除「onclick = ...」,它可以工作,但它不會加載gif ... 任何想法可能來自哪裏?我試圖直接在JS中添加點擊,但它也不起作用。

這裏是GIF:

function preparepreloader() { 
var loader = $('<div class="preloaderwrapper hiddenn">' + 
'</div>' + 
'<div class="preloader hiddenn">' + 
    '<div class="prewrapper">' + 
     '<div class="eyeglass">' + 
      '&nbsp;</div>' + 
     '<div class="preloaderanimate">' + 
      '&nbsp;</div>' + 
    '</div>' + 
'</div>'); 

var new_loader = $('<div class="preloader_gif preloader hiddenn"> <img src="'+ mediaUrl +'/img/loader/712.gif" /> </div>'); 

$('#updatepreloader').append(loader); 
$('#updatepreloader').append(new_loader);} 
+0

是對GIF已經在體(隱藏),或者你將其追加使用showupdate()函數之後? – Vixed

+0

這是一個「追加」。之前有一些檢查,但我可以添加代碼。 – Gun

+0

問題是,當您提交表單時,您正在嘗試加載圖像,那麼您希望瀏覽器首先加載的是什麼?您必須這樣做:將div「preloaderwrapper」隱藏在主體中,並且只需顯示它,或者阻止默認事件,構建div,然後繼續執行submit default事件。我會盡量寫一個答案儘快。 – Vixed

回答

1

只需添加一個類hasLoader你想展示你的GIF提交後的形式,這樣就可以防止默認事件,加載GIF,然後表格將在提交後自動提交。對不起,但我很困惑showupdate()preparepreloader()所以我希望這是一些東西,我明白了。

MVC

using (@Html.BeginForm("findpost", "keyword", FormMethod.Post, new { @id = "mainForm", @class = "hasLoader" })) 
{ 
    <button type="submit" class="btn-submit" name="s"></button> 
    <input name="query" type="text" id="query" value="@Model.search" placeholder=" ex: iPod"> 
    <input type="hidden" name="pos" value="" /> 
    <input type="hidden" name="dis" value="" /> 
} 

JS

$('.hasLoader').on('submit',function(e){ 
    e.preventDefault(); 
    var loader = $('<div class="preloaderwrapper hiddenn"></div>' + 
    '<div class="preloader hiddenn">' + 
     '<div class="prewrapper">' + 
      '<div class="eyeglass">&nbsp;</div>' + 
      '<div class="preloaderanimate">&nbsp;</div>' + 
     '</div>' + 
    '</div>'); 

    var new_loader = $('<div class="preloader_gif preloader hiddenn"> <img src="'+ mediaUrl +'/img/loader/712.gif" /> </div>'); 

    $('#updatepreloader').append(loader, new_loader); 
    $(this).off('submit').submit(); 
}); 
+0

謝謝,我沒有把我所有的代碼,只有基本但你明白了!這很有幫助! – Gun

+0

不客氣!但是,請只爲我,請告訴我,如果** showupdate()**和** preparepreloader()**是相同的功能? – Vixed

+0

實際上,showupdate()只是做一些基本檢查(null或空關鍵字和一些基本的sutff),然後調用prepareloader。 – Gun