javascript - 如何在提交表单之前禁用按钮

标签 javascript jquery html ajax forms

Fiddle和代码:

$(".addtowatchlistform").submit(function(e) {
  var data = $(this).serialize();
  var url = $(this).attr("action");
  var form = $(this); // Add this line
  $.post(url, data, function(data) { 
    try {
        data = JSON.parse(data);
        $(form).children("button").css('color',data.watchlisticoncolor); 
		$(form).children("button").attr('data-tooltip',data.addremove + " YOUR WATCHLIST");
        $(form).children("input#addedornotsend").attr('value',data.addedornotsend); 

    } catch (e) {
        console.log("json encoding failed");
        return false;
    }
});
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form class="addtowatchlistform" action="insert.php" method="POST" >

		<input id="addedornotsend" type="hidden" name="addedornot" value="'.$addedornot.'"/>
		<button id="addtowatchlistbutton" type="submit" name="tmdb_id"  data-tooltip="'.$addremove.' YOUR WATCHLIST" class="material-icons">Submit please</button>
		<span class="result"></span> 
		</form>

此代码提交表单而不重新加载页面(ajax)。但问题是,用户可以在提交表单时多次提交表单。

我想在提交表单时禁用该按钮。我怎样才能做到这一点?

最佳答案

表单上的帖子设置按钮已禁用

$(".addtowatchlistform").submit(function(e) {
  var data = $(this).serialize();
  var url = $(this).attr("action");
  var form = $(this); // Add this line
$("#addtowatchlistbutton").attr('disabled','disabled');
  $.post(url, data, function(data) { 
    try {
        data = JSON.parse(data);
        $(form).children("button").css('color',data.watchlisticoncolor); 
		$(form).children("button").attr('data-tooltip',data.addremove + " YOUR WATCHLIST");
        $(form).children("input#addedornotsend").attr('value',data.addedornotsend); 
 $("#addtowatchlistbutton").removeAttr('disabled');
    } catch (e) {
        console.log("json encoding failed");
$("#addtowatchlistbutton").removeAttr('disabled');
        return false;
    }
});
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<form class="addtowatchlistform" action="insert.php" method="POST" >

		<input id="addedornotsend" type="hidden" name="addedornot" value="'.$addedornot.'"/>
		<button id="addtowatchlistbutton" type="submit" name="tmdb_id"  data-tooltip="'.$addremove.' YOUR WATCHLIST" class="material-icons">Submit please</button>
		<span class="result"></span> 
		</form>

关于javascript - 如何在提交表单之前禁用按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45229401/

相关文章:

javascript - Angularjs oauth 弹出窗口,等待 JSON 响应

javascript - JavaScript 插入输入的这个字符 ""是什么?

Javascript element.click() 或选择值更改应该触发事件,但它不会

javascript - 第一个 jquery 事件正在发生,但不是第二个

jquery - 无需页面重新加载 + 网址更改即可浏览网站

javascript - wrapper.instance() 上的 react 测试失败

javascript - 让复选框在整个 session 期间保持选中状态

html - CSS - 平滑扩展按钮宽度并在悬停时显示文本

php - 将表格详细信息发送到电子邮件

javascript - 直接从应用程序调用时,云函数返回 null