0

我在一个页面上有两个表单提交,它们都在做同样的事情。

一个在工具栏/导航栏上,另一个在主页面上。
我遇到的问题是,一旦我在工具栏上添加了表单,主页上的表单在触发时就永远不会具有搜索值,如果我在工具栏中注释掉该表单,则主页具有该值。

//Toolbar submit
<form>
  <div class="input-append">
    <input type="text" class="span3" placeholder="Enter name" />
    <button type="submit" class="btn-u">Go</button>
   </div>
 </form>

// Main page submit
<form class="form-inline margin-bottom-5">
  <div class="input-append">
    <input type="text" class="input-xxlarge" placeholder="Enter class name">
    <button type="submit" class="btn-u">Go</button>
  </div>
</form>

//JavaScript/JQuery
$("form").submit(function (e) {

  var searchTerm = $("input:first").val();
  if (searchTerm === '') {
    // This part of the code is reached for the second submit,
    // I have tried using id on the submit but have the same result
  }
4

3 回答 3

3

更改以下内容,此时它正在寻找页面上的第一个输入,这将在实际提交的表单中寻找第一个输入。

var searchTerm = $("input:first").val();

var searchTerm = $(this).find("input:first").val();
于 2013-06-18T10:22:47.077 回答
1

您正在寻找的var searchTerm = $("input:first").val();任何内容都表明您正在寻找提交表单中的第一个输入。在这里,您正在寻找页面第一个表单的第一个输入。将其替换为var searchTerm = $(this).find("input:first").val();

编辑:嗬,我回答太慢了......嗯,至少它确认了解决方案。

于 2013-06-18T10:27:12.987 回答
1

使用“this”确保您正在寻找您提交的表单中的第一个输入:

$("form").submit(function (e) {

   var searchTerm = $(this).find("input:first").val();
   if (searchTerm === '') {
      // This part of the code is reached for the second submit,
      // I have tried using id on the submit but have the same result
   }
于 2013-06-18T10:28:01.240 回答