【问题标题】:Bootstrap Stateful Button on a Input Form Submit输入表单提交上的引导状态按钮
【发布时间】:2014-04-09 22:35:05
【问题描述】:

我想在表单的提交按钮(输入)中使用按钮的状态功能。但我终其一生都无法弄清楚如何做到这一点。

我的表单执行一个 php 页面。我希望在加载该 php 页面期间更改按钮(取决于内容,最多可能需要 20 秒)。这可能吗?

http://getbootstrap.com/javascript/#buttons

示例代码:

<form method='post'>
<input type='text' name='test'></input>
<input type='submit' id='loading-example-btn' value='Submit' data-loading-text="Loading...">
</form>
<script>
  $('#loading-example-btn').click(function () {
    var btn = $(this)
    btn.button('loading')
    $.ajax(...).always(function () {
      btn.button('reset')
    });
  });
</script>

【问题讨论】:

  • 您的 ajax 调用为空。例如,它的预期用途是网页上的“加载更多”按钮。单击按钮时,它会发送一个 ajax 调用以获取更多结果,并且在发生这种情况时按钮被禁用。
  • 我的表单执行一个 php 页面。我希望在加载该 php 页面期间更改按钮(取决于内容,最多可能需要 20 秒)。这可能吗?

标签: javascript jquery html forms twitter-bootstrap


【解决方案1】:

您是否在浏览器 JavaScript 控制台中查找过错误?就目前而言,您的 js 无效(除非您已缩写它?)。

假设您没有尝试使用 ajax 发布表单,只需删除以下几行,您应该会得到您想要的行为:

$.ajax(...).always(function () {
  btn.button('reset')
});

此外,此行是无效的 HTML,因为 input 是一个 void 元素,不需要关闭 &lt;/input&gt; 标记。

<input type='text' name='test'></input>

【讨论】:

  • 所以我对AJAX缺乏了解可能是这里的垮台。现在我的表单提交到一个 php 页面并挂起,直到 php 页面完成它的事情(对 API 的卷曲请求并获取结果)。我对它挂起没​​有问题,我只想在这个加载阶段改变提交按钮文本(或弹出模式)。
  • 我也有一个完整的表格,但它有一点 PII,所以我只是做了一个测试表格作为示例。
  • 所以删除我建议的行并没有实现?它应该工作.. bootply.com/128762
  • 抱歉延迟回复,这对我有用。谢谢!
  • 无论如何它是否会在同一个 AJAX 调用中更改为 Loading... 0.5 秒,然后更改为 Other Text... 其余时间?
猜你喜欢
  • 2016-03-14
  • 2021-07-21
  • 1970-01-01
  • 2011-01-26
  • 1970-01-01
  • 2016-12-04
  • 1970-01-01
  • 1970-01-01
  • 2012-04-23
相关资源
最近更新 更多