【问题标题】:Stop Jquery from replacing the field阻止 Jquery 替换字段
【发布时间】:2010-11-21 07:07:49
【问题描述】:

我现在几乎得到了我想要的。 (从互联网上的代码拼凑而成。)

但我需要知道如何防止我的查询被覆盖。

例如我有一个文本字段。当下拉列表中的一个词被选中时,它会将文本放入表单字段中。如果我选择另一个单词,它将替换该单词。我想要它做的是能够尽可能多地选择,并且无论我触摸多少单词,它都会保留这些单词,除非我向上退格或从表单字段中删除它们。

这是我的代码。

http://pastebin.com/1wnAZMNM

【问题讨论】:

    标签: javascript jquery field


    【解决方案1】:

    一种方法是将新文本附加到输入控件而不是替换其内容,可能在中间插入一个空格字符:

    $(".myselect").change(function() {
        $(".textbox").val($(".textbox").val() + ' ' + $(this).val());
    });
    

    【讨论】:

    • 太棒了!非常感谢。这有什么原因吗。我想知道为什么这行得通,但似乎也没有其他任何东西。 (你救了我的理智!)
    • 也许你会感到困惑,因为.val() 方法返回 调用时没有 参数的文本框的值,但设置 i> 使用参数调用时文本框的值。在我的示例中,我首先调用.val() 来获取文本框的当前值,然后附加一个空格,然后附加下拉列表的选定值,最后将结果字符串传递返回给.val() 更新文本框的值。
    • 这令人困惑。但现在一切都很好。我在将近 2 天的时间里犯了 100 倍的错误,但我真的要感谢你的帮助。我再也不会低估js了。 :) 它救了我的命。
    • 如果您有多个.textbox,这将产生奇怪的结果。您可以使用回调使其更好:$('.myselect').change(function(){var select = this; $('.textbox').val(function(i, oldVal) { return oldVal + select.value; }); });
    猜你喜欢
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 2012-01-03
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    相关资源
    最近更新 更多