jquery ui:检测输入中的首次时间变化
jquery-ui : detect first time change in input
我试图制作jquery ui进度条,它显示表单中填写输入的进度。我的代码如下:
html:
<div id="progress" class="progress"></div>
//form and inputs
脚本:
$(document).ready(function(){
var elementcount = document.getElementById("events").length;
var totallength = 100;
var relativelength = totallength/elementcount;
var initial = 0;
$('#progress').progressbar({
value: initial,
});
$('#events').find(':input').each(function(){
$(this).change(function(){
if($(this).val()==""){
var value = initial - relativelength;
$('#progress').progressbar("value",value);
initial = value;
}
else{
var value = initial + relativelength;
$('#progress').progressbar("value",value);
initial = value;
}
});
});
});
在上面的代码中,我首先计算了表单中元素的数量,并设置了相对长度(每个填充输入的长度都要增加)。进度条随着输入值的变化而增加。如果输入值为空(即为空),则它会减少。
这很好,但问题是它每次检测输入的变化。因此,如果我填充输入并第二次填充,那么进度条会再次增加。
有没有什么解决方案可以让我检测到输入的第一次更改,并在更改后停止进度条的进度?
您可以做的是创建一个类,比如说"valid",当用户输入了任何使输入元素有效的内容时,将该类添加到输入元素中,否则将其删除。
$(this).change(function(){
if($(this).val()==""){
var value = initial - relativelength;
$('#progress').progressbar("value",value);
initial = value;
$(this).removeClass('valid');
}
else if(!$(this).hasClass('valid')){
var value = initial + relativelength;
$('#progress').progressbar("value",value);
initial = value;
$(this).addClass('valid');
}
});
在此处查找工作代码。
您可以使用一个数组,当在输入字段中添加文本时添加一项,当输入字段变空时删除一项,如下所示-
var items = [];
$('#events').find(':input').each(function(){
$(this).change(function(){
if($(this).val()==""){
items.slice(0);
$('#progress').progressbar("value",items.length);
}
else{
items.push('1');
$('#progress').progressbar("value",items.length);
}
});
});
});
相关文章:
- Java脚本时间添加
- Json数据包含日期和时间格式
- Webkit-css随持续时间变化
- JavaScript中的style.clip会随着时间的推移而变化
- jquery ui:检测输入中的首次时间变化
- 如何在时间变化时旋转图像
- 使用套接字io和angularjs处理频繁变化的时间序列数据的策略
- D3.js:计算随范围变化的时间尺度上的柱线宽度
- RequestAnimationFrame调用时间根据我的画布大小而变化
- 如何实现持久的、变化的时间周期
- 对于动态变化的时间,设置nvd3 x域范围的最佳方法是什么
- 使用javascript / jqplot可视化以小间隔变化的时间序列数据
- Angular (jquery时间选择器)无法检测到变化
- 一段时间间隔后图像的变化
- 没有用户输入的订阅反应性和出版物中不断变化的时间框架
- 网站根据一天中的时间变化
- 如何在Javascript中使页面的背景颜色在一天中的某个时间发生变化
- 一天中某个时间的颜色变化不适用于Js
- Javascript tumblr背景根据一天中的时间而变化
- 放慢背景变化持续时间与javascript