用户选择选项后,Twitter预先不保留值

时间:2016-06-20 21:09:19

标签: javascript html jsp typeahead.js twitter-typeahead

我正在尝试优化下拉菜单选择栏,使用twitter的预先输入来预先输入自动填充功能。当我实现twitter的预先输入时,我无法保留用户选择的值或刷新页面后输入的值。此外,当我尝试提交我正在处理的表单时,似乎它从未被记录为值字段。

这是我的代码:

自动填充和建议的子串匹配器

var substringMatcher = function(strs) {
          return function findMatches(q, cb) {
            var matches, substringRegex;
            matches = [];
            substrRegex = new RegExp(q, 'i');
            jQuery(function ($){
                  $.each(strs, function(i, str) {
                      if (substrRegex.test(str)) {
                          matches.push(str);
                      }
                  });
                  cb(matches);
              });
          };
    };

事先键入的内容

 var Array = [];
        jQuery(function ($) {
                $(document).ready(function(){
                    $('#project').typeahead({
                                hint: true,
                                highlight: true,
                                minLength: 1
                            },
                            {
                                name: 'Projects',
                                source: substringMatcher(Array)
                            });
                });

            });

HTML

<c:forEach items="${Form.projectList}" var="val">
   <script type="text/javascript">
        var Projects = "${val.project}";
        Array.push(Projects);
   </script>
</c:forEach>

<div id="the-basics">
   <input id = "project" class="typeahead" type="text" placeholder="Projects">
</div>

任何人都可以就如何解决这个问题给我任何建议吗?

1 个答案:

答案 0 :(得分:0)

  

...当我尝试提交我正在处理的表单时,似乎它从未被记录为值字段。

您的input元素缺少name属性,is required表示提交表单时要发送的input值。尝试使用此HTML:

<input id="project" name="project" class="typeahead" type="text" placeholder="Projects">

我不确定这是否也可以解决页面刷新时丢失值的问题,或者是否需要额外的解决方案。