【问题标题】:jQueryt Stackoverflow-style tag box not submitting valuesjQuery Stack Overflow 风格的标签框不提交值
【发布时间】:2012-10-25 19:01:11
【问题描述】:

我有一个 stackoverflow 风格的标签框,它工作正常,只是在提交表单时它不会提交标签值。 url 只是以'/?tags=' 的形式出现。我想不出有什么问题。有什么想法吗?

$(".tag_field").each(function() {
  var buttons = $("<div/>");
  var input = $(this).find("input[type=text]"); /* locate element input type text */
  var output = $(this).find("input[type=hidden]"); /* locate element input type text */

  var update_padding = function() {
      input.css("padding-left", buttons.width() + 2); 
  };       
  setInterval(update_padding, 300);

  $(this).prepend(buttons);
  buttons.addClass("tag_buttons");
  buttons.css({ left: input.offset().left + 1,
                top: input.offset().top + 2 });
  input.bind("keyup change paste", function() {
    var i = input.val().indexOf(",");
    if (i >= 0) {
      var new_tag = input.val().substr(0, i);
      input.val(input.val().substr(i+1));
      buttons.append("<div id='button'><span class='value'>"+new_tag+"</span> <span class='close'>(x)</span></div>");
    }
  });

  var form = $(this).closest("form");
  if (form.length > 0) {
    form.submit(function() {
      var v = [];
      form.find(".tag_buttons div").each(function() {
        v.push($(this).find(".value").html());      
      });

      output.val(v.join(","));
      return false;
    });          
  }

});

HTML如下:

<form method="get"> <!-- renders to same page -->
    <div class="row">
        <div class="twelve columns tag_field">
             <input type="text">  
             <input type="hidden" name="tags">
        </div>
    </div>
    <input type="submit" value="Apply Filters"> 
</form>

【问题讨论】:

  • return false; 在表单的提交处理程序的末尾,所以提交事件不会触发。
  • 就是这样。我不敢相信我没有看到...
  • 还有一个潜在的问题:您似乎多次.append() 一个元素,但该元素有一个id&lt;div id='button'&gt;。我会将其更改为 class 属性,因为 id 稍后会导致问题。

标签: jquery forms tags


【解决方案1】:

根据 Blender 的评论,我最后确实返回了 false,因此提交事件没有触发。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-28
    • 2011-03-09
    • 1970-01-01
    • 2012-10-16
    • 2012-02-21
    • 2015-09-12
    • 1970-01-01
    • 2011-11-16
    相关资源
    最近更新 更多