0

私はスタックオーバーフロースタイルのタグボックスを持っていますが、フォームが送信されたときにタグの値を送信しないことを除いて、うまく機能します。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>
4

1 に答える 1

0

Blender のコメントによると、最後に false を返したので、submit イベントは発生しませんでした。

于 2012-10-25T19:10:52.850 に答える