0

我正在使用 Loopj 的 TokenInput,它工作正常。

我在同一页面上有三个搜索框 - 一个用于三个不同的搜索属性,每个都有自己的外部数据源(在本例中,按船名、船级和船型搜索)。当然,有三个“提交”按钮,每个搜索框一个。

我的问题:单击任何“提交”按钮仅返回其自己的搜索框的值(基于包含的脚本,请参阅下文)。我想要的是单击任何按钮并获取所有搜索框的值,以便我可以创建一个 MySQL 查询。

<script type="text/javascript">
  $(document).ready(function() {
    $("input[type=button]").click(function () {
      alert("Would submit: " + $(this).siblings("input[type=text]").val());
    });
});
</script>

注意:这个较早的问题“在一个页面上的多个输入上使用 tokeninput jquery 插件”。似乎相关,但该问题的答案并未解决此问题。

4

1 回答 1

1

经过一些进一步的测试,我已经找到了答案,为了完整起见,我将其包含在此处。不幸的是,这凸显了我对编码知之甚少......

  1. javascript“警报”脚本是一个红鲱鱼。它不会神奇地凭空获得令牌值。令牌值已存储在相关输入字段中。

  2. “提交”按钮是一个红鲱鱼。那是因为他们是“。他们只是在那里触发javascript警报,他们不能提交表单。

  3. 你需要一个表格!“TokenInput”演示展示了插件的工作原理,但它们旨在以形式使用。

  4. 我在页面顶部添加了一个表单域,在页面</form>底部添加了一个关闭表单域 ( )。结果是我的三个搜索框都在表单内。请注意,该操作是检索相同的页面和 method = post。

    `<form id="myshiptype" name="pixsearchform" action="<?php echo $_SERVER[REQUEST_URI]; ?>" method="post" >`
    
  5. 我将示例输入“名称”字段从“blah”更改为更有意义的内容——shipid、classid 和 typeid。

  6. <input type="Submit" />我在表单底部添加了一个提交按钮(种类繁多)。<input type="submit" id="update" name="update" value="Update search" />

  7. 我在页面中添加了一些调试代码,以在单击提交按钮后显示输入字段的值。

    <?php 
    $postvalues = "";
    if ($_POST) {
    $kv = array(); 
    foreach ($_POST as $key => $value) {
    $kv[] = "$key=$value";
    } 
    $postvalues = join("&", $kv);
    }
    echo "post values are ".$postvalues;
    ?>
    
  8. 这是调试示例 - “post values are shipid=34&classid=&typeid=677,638&update=Update search”

下一步是使表单适应 Ajax,并禁用表单中的“Enter”键(当用户在空搜索中按 Enter 时)。

于 2012-06-12T06:00:31.430 回答