我在我的网站上使用MVC,并且在表单上使用“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">' +
' </div>' +
'<div class="preloaderanimate">' +
' </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 :(得分:1)
只需在提交后为要显示gif的表单添加一个类 hasLoader ,这样就可以阻止默认事件,加载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"> </div>' +
'<div class="preloaderanimate"> </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();
});