保存一个输入值,这样,如果用户留空,它将恢复为默认值
Saving an input value so that if a user leaves blank it reverts back to default
我尝试创建一个变量oldValue
,然后如果当前值=== ""
,它将变回oldValue
,因为我使用的是for
循环,所以我可以明确地说出值是什么。
代码正在改变input
元素周围的div
,这就是为什么有.parentNode
的
有人能告诉我如何获得输入的值并保存它吗?或者我的代码哪里出错了。
var inputFocus = function(){
var inputs = document.getElementsByClassName("inputNoFocus");
for (i = 0; i < inputs.length; i++){
var input = inputs[i];
var oldValue = this.value;
input.addEventListener("focus", function(){
if(this.value === this.value){
this.value = "";
}
this.parentNode.parentNode.setAttribute("class", "inputFocus");
}, false);
input.addEventListener("blur", function(){
if(this.value === ""){
this.value = oldValue;
}
this.parentNode.parentNode.setAttribute("class", "noHover");
}, false);
}
}();
试试这个:
(function() {
var inputs = document.getElementsByClassName("inputNoFocus");
function setEmptyVal() {
if (this.value == this.defaultValue) this.value = "";
this.parentNode.parentNode.setAttribute("class", "inputFocus");
}
function setDefaultVal() {
if (this.value == "") this.value = this.defaultValue;
this.parentNode.parentNode.setAttribute("class", "noHover");
}
for (i=0; i<inputs.length; i++) {
var input = inputs[i];
input.defaultValue = input.value;
input.addEventListener("focus", setEmptyVal, false);
input.addEventListener("blur", setDefaultVal, false);
}
})();
这是小提琴。
我不确定你想做什么,但根据我的理解——事件监听器中函数中this.value的值将返回null
——原因是JavaScript中的作用域。值CCD_ 9的作用域将在父函数中而不是在eventlisters匿名函数中定义的函数中。
尝试阅读http://www.adequatelygood.com/2010/2/JavaScript-Scoping-and-Hoisting你会理解范围界定,以及为什么或在哪里你可能会出错。
相关文章:
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- jquerydatetimepicker日期和时间应在框默认值中,而无需单击框
- 如果值为空,如何设置输入的默认值?jQuery
- 骨干模型默认值-todos.js示例中不必要的代码
- jquery日期选择器年份范围默认值
- Html5输入属性的默认值,如最小值、最大值、大小等
- 根据两个下拉列表的默认值禁用按钮
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- Angularjs-设置不带ng选项的select的默认值
- jQuery Datepicker从日期开始设置默认值
- 如何设置浏览器打开的文件对话框的文件名(一些默认值)
- JQuery BlockUI鼠标加载光标没有't在Google Chrome中返回默认值
- Selectize选择默认值
- 在KeystoneJS中为Types.Money设置默认值
- 如果用户未选中复选框或选择按钮,如何为复选框或单选按钮设置一些默认值
- 如何在用户单击按钮时存储类名,以便在下次访问时将其用作默认值
- 使用用户提供的对象的属性(如果存在),否则使用默认值
- 保存一个输入值,这样,如果用户留空,它将恢复为默认值
- 当用户点击重置按钮时,恢复textfield的默认值
- 如何在用户开始键入(jquery)时清除表单的默认值