在提交时更改输入背景
Changing input background on submit
我正在尝试创建一个简单的效果,每当有人在我的搜索字段中输入任何内容时,在点击"输入"时,输入框中会出现一个简单的小加载 gif。
你可以在这里看到我的代码:http://jsfiddle.net/9KEKa/1/,这里是原始的HTML,CSS和JS:
.HTML
<form>
<input type="text" placeholder="Search..." class="transition-width" />
<input type="submit" value="Search" class="hide" />
</form>
.CSS
/* General */
.hide {
display: none;
visibility: hidden;
}
.transition-width {
-webkit-transition: width 0.5s ease;
-moz-transition: width 0.5s ease;
-o-transition: width 0.5s ease;
-ms-transition: width 0.5s ease;
transition: width 0.5s ease;
}
/* Search Form */
form input {
background: url('http://i.imgur.com/7BKx4xr.png') no-repeat right;
border: none;
cursor: pointer;
float: right;
margin-right: 100px;
width: 61px;
}
.searching { background: url('http://i.imgur.com/ayJ7sYg.gif') no-repeat right; }
form input::-webkit-input-placeholder { color: #fff; }
form input::-moz-input-placeholder { color: #fff; }
form input:-moz-input-placeholder { color: #fff; }
form input:-ms-input-placeholder { color: #fff; }
form input:focus {
background: #efefef;
border: 1px solid #aaa;
cursor: auto;
width: 200px;
}
form input:focus::-webkit-input-placeholder { color: #666; }
form input:focus::-moz-input-placeholder { color: #666; }
form input:focus:-moz-input-placeholder { color: #666; }
form input:focus:-ms-input-placeholder { color: #666; }
JavaScript (jQuery)
$(function () {
$('.search form').on('submit', function (e) {
e.preventDefault
$('.search form input.transition-width').addClass('searching');
});
});
我要做的就是添加"搜索"类,其中包含我想要作为背景的动画 gif。
我的很多代码似乎是正确的,但我可能只是心理障碍。希望这是一个可以解决的简单问题。
输入的捕获密钥不正确。 此外,"加载效果"仅适用于点击"输入"的用例。 我已经保留了您的CSS和HTML完好无损,没有更改。
.JS
$('.transition-width').keydown(function(event){
if (event.keyCode == 13){
event.preventDefault();
event.stopPropagation();
$('input.transition-width').blur();
$('input.transition-width').addClass('searching');
}
});
小提琴
http://jsfiddle.net/58uQU/1/
3 件事:
.searching
的选择器不够具体。它正在被input:focus
覆盖,因此没有效果。- 你需要调用函数 preventDefault 而不仅仅是指向它。
e.preventDefault();
- 事件处理程序使用了错误的选择器。
尝试e.preventDefault();
而不是e.preventDefault
。
并且你的选择器不应该.search form
..当你的源代码在有问题的表单之前没有这样的类元素时。在这种情况下,它应该只是form
。
js小提琴
相关文章:
- jQuery位置选择器输入样式背景和焦点
- 使输入文本的背景图像在点击“”时滑出视野;输入“”;
- 在页面上自动切换模糊后,更改输入的背景颜色
- 使用 JavaScript 和无线电输入更改 HTML 中的背景颜色有什么错误
- 清除值时,将输入背景颜色返回到原始状态
- CSS或JS-当输入被聚焦时,改变输入的背景颜色
- j在鼠标上查询输入背景颜色淡入淡出
- 如何使用 jquery 单击输入类型按钮时更改画布背景图像
- 在提交时更改输入背景
- 如何防止tr的背景颜色溢出到禁用的输入字段中
- 如果输入的值在数据库中有效,请更改输入背景颜色
- 将正文的背景图片设置为用户输入的带有Javascript的URL
- onclick= 更改表单中同一类的所有输入文本字段背景颜色
- 如何使用 JavaScript 淡出/输入背景图像
- 从文本字段输入的数据更改窗口的背景颜色
- 两个按钮,可随背景位置变化而切换,并在输入中显示结果
- 更改表单中所有输入的 DIV 背景颜色
- 输入数据后更改字段背景颜色
- 通过输入文本框的键向上更改背景颜色
- 在不更改默认边框的情况下更改输入背景