2015-06-14 13 views
0

我有一个提交按钮的网页。我的提交按钮,如下所示:允许使用jQuery点击按钮提交

<button type="submit" class="btn btn-primary wait-on-click"> 
    <span>Submit</span> 
</button> 

当用户点击提交按钮,我想禁用的按钮,让用户知道有事情发生。要做到这一点,我有以下JavaScript:

$('.wait-on-click').click(function(e) { 
    e.preventDefault(); 
    $(this).prop('disabled', true); 
    $('span', this).text('Please wait...'); 
}); 

该按钮禁用。文本被更新。但是,提交实际上并未提交给服务器。如果我注释掉我的JavaScript函数的正文,它可以正常工作。我不明白如何解决这个问题。

谢谢!

+0

@ AmmarCSE的答案是正确的,'preventDefault'阻止提交表单。但是如果你允许表单提交,你所有的按钮都是毫无意义的,因为当表单发布时,你的更改将会消失。为了让代码更有意义,您需要使用Ajax提交表单。是这样吗? – kim3er

+0

我在测试后发现你真正的问题。查看我的更新回答 – AmmarCSE

回答

3

我相信你的问题是这一行

e.preventDefault(); 

这阻止提交按钮的默认行为,即提交!因此,删除它。

更新

测试后,我发现这个问题。 我相信你的问题是这一行

$(this).prop('disabled', true); 

出于某种原因,这是防止从形式提交。因此,把它放在提交处理程序中。

$('.wait-on-click').click(function(e) { 
 
    $('span', this).text('Please wait...'); 
 
}); 
 

 
$('form').on('submit', function() { 
 
    $('.wait-on-click').prop('disabled', true); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 
 
<form> 
 
    <input name="n" /> 
 
    <button type="submit" class="btn btn-primary wait-on-click"> 
 
    <span>Submit</span> 
 
    </button> 
 
</form>

+0

我已经试过了。不幸的是,这不是问题。谢谢你尝试。 –

+0

@ZachTempleton,你可以在小提琴中重现问题吗? – AmmarCSE

+0

这工作!提交作品是杀手。感谢您的帮助! –