替换输入字段的文本会移动其位置

时间:2013-09-27 04:16:14

标签: javascript jquery forms

我有一个由某些事件控制的搜索表单,当它被模糊时,该函数会检查该值是否为空白,如果是,则将默认搜索文本放回原位。

以下是示例页面的链接: http://merkd.com/community

以下是相关功能:

// searchInput is a jQuery reference to the <input> field
// searchTextColor is the original font color of the unfocused form
// searchText is the original search text
$('#header form').on('blur', 'input', function() {
    searchInput.css('color', searchTextColor);

    // When I comment these lines out, it doesn't move
    if ( searchInput.val() == '' ) {
        searchInput.val(searchText);
    }

});

要查看故障,请在搜索字段中键入一些文本,然后将其删除并模糊搜索表单,输入字段将向左移动。

知道为什么会这样吗?就像我说的,如果我不改变文本那么它就不会移动。我不知道这会如何影响页面中元素的位置。

1 个答案:

答案 0 :(得分:1)

<强>问题

这就是问题发生的原因

参见萤火虫

   <input type="text" value="Search Teams, Players, Etc." name="search">
    <img title="Search" alt="Search" src="/engine/themes/img/search.white.focus.png">
    <input type="submit" value="Search Teams, Players, Etc.">

<强>溶液

    $('#header form').on('blur', 'input[name=search]', function() {// not use input other wise valuse also set in submit input box
        searchInput.css('color', searchTextColor);

        // When I comment these lines out, it doesn't move
        if ( $(this).val() == '' ) {
            $(this).val(searchText);
        }

});