【问题标题】:How is user input submitted in bootstrap 3 form?用户输入如何以 bootstrap 3 形式提交?
【发布时间】:2015-07-13 15:30:39
【问题描述】:

我正在使用 bootstrap 3,其中包括 jquery 1.11.2.min.js。我正在使用两个文本字段更新搜索网页:关键字和城市、州、zip。我有一个用于搜索结果的脚本,该脚本需要提取输入到这两个搜索文本字段中的用户输入以查找所需的搜索结果。

视觉解释: 我的带有占位符和搜索按钮的搜索栏:

带有我的用户输入的搜索栏(在波士顿搜索工程工作): 在 HTML 中,没有为我在波士顿搜索中的工程工作创建的唯一值(value="Engineer" 或 value="Boston"):

如果没有 value="Engineer" 和 value="Boston",我无法告诉我的脚本显示波士顿工程工作的搜索结果。我在哪里可以找到/创建它以拉入我的搜索脚本?

它是否位于 bootstrap.js 文件中的任何位置?我无法确定此表单在何处/如何提取用户输入值(无需为每个输入使用 value="")。

非常感谢您的帮助 - 我的表格如下。

<div id="somebanner" class="somebanner-bgsearch-red hero1 hidden-xs">
  <div class="container-fluid">
    <div class="top-section">
        <div class="container">
          <form class="form-inline no-margin center-block" action="http://www.somesite.com/unknown" method="POST" role="form">
            <div class="row">
              <center>
              <fieldset>

                <!-- Search input-->
                <div class="form-group center-block">
                  <div class="col-sm-4">
                    <input id="keyword" name="keyword" type="search" placeholder="Keyword" class="form-control input-lg">

                  </div>
                </div>

                <!-- Search input-->
                <div class="form-group center-block">
                  <div class="col-sm-4">
                    <input id="location" name="location" type="search" placeholder="City, State, or Zip Code" class="form-control input-lg">

                  </div>
                </div>

                <input type="hidden" name="unknown" value="unknown">

                <!-- Button -->
                <div class="form-group center-block">
                  <div class="col-sm-2">
                    <button type="submit" id="btn-search" name="btn-search" class="btn btn-primary btn-lg btn-tusaj">Search</button>
                  </div>
                </div>
                </center>
              </fieldset>
            </div>
          </form>
        </div>
      </div>
    </div>
  </div>

这里是 bootstrap.js 代码的链接:http://getbootstrap.com/dist/js/bootstrap.js

这里是 jquery 代码的链接: https://code.jquery.com/jquery-1.11.2.js

【问题讨论】:

  • 我认为您的印象是 Bootstrap 可以做它不适合做的事情。
  • 我第二个詹姆斯。您发布的html代码与您描述的功能无关
  • 能否包含 Boostrap 控制器或视图的 JavaScript 代码?
  • 除了可能的浏览器autocomplete 之外,没有任何显示会填充值,可以使用适当的属性禁用它。你的问题不清楚
  • 是否需要获取2个搜索字段的值?请澄清您的问题。

标签: javascript forms twitter-bootstrap twitter-bootstrap-3 initializr


【解决方案1】:

您正在尝试使用 Bootstrap 来修改 HTML,但 Bootstrap 是用于响应式设计的 CSS 框架。它无法进行这样的 HTML 修改。你需要使用 jQuery:

$(document).ready(function(){
  $("#btn-search").click(function(e){
    e.preventDefault();
    var x = $("#keyword").val();
    var y = $("#location").val();
    $("#keyword").attr("value", x);
    $("#location").attr("value", y);
  });
});

这应该做的工作。如果您还有其他问题,请在 cmets 中告诉我。

【讨论】:

  • 由此产生的另外两个问题: 1. 我是否需要创建特定的输入 ID 或名称以在 jquery 或占位符作品中引用? 2. 在移动设备中,我隐藏了这个搜索栏并在其位置显示了一个搜索下拉按钮。由于这是执行完全相同功能的两种不同形式,我将如何区分 jquery 中的两种形式(我正在考虑为每个形式使用 1 个 jquery 脚本,但需要区分两种形式的关键字和城市、州,zip 文本字段)?
  • Ans 1:在您提供的问题代码中,特定的&lt;input&gt; 标签上已经有id="keyword"id="location"。 jQuery 选择器需要这 2 个 id 才能找到 &lt;input&gt; 标签。因此,您必须为各自的 &lt;input&gt; 标签提供 2 个 ID。
  • 至于问题2:所以情况是您在移动设备上显示了不同的表格;但该表单需要做同样的事情(即设置&lt;input&gt;value 属性)。在这种情况下,您可以做的是:将移动表单的“搜索”标签的id 添加到我的答案的第二行:$("#btn-search, #btn-mobile-search").click(...)。这样,代码将在正常搜索和移动搜索中被调用。
  • @JBear 没问题,编码愉快!
  • 我还有一个问题要补充:假设用户位于波士顿。如何添加到此 jQuery 代码以自动为#location 插入 value="Boston"?或假设用户搜索经理。在搜索结果页面上,如何为 #keyword 预填充 value="Manager"?
猜你喜欢
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 2018-12-27
  • 2015-07-26
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
相关资源
最近更新 更多