Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用onClick将文本框值增加/减少1_Javascript_Android_Ios_Cordova_Numberpicker - Fatal编程技术网

Javascript 如何使用onClick将文本框值增加/减少1

Javascript 如何使用onClick将文本框值增加/减少1,javascript,android,ios,cordova,numberpicker,Javascript,Android,Ios,Cordova,Numberpicker,首先,请帮助我纯粹用JavaScript来理解这一点。没有jQuery或任何插件。我正试图将其编码为在Cordova/PhoneGap中工作。我在教自己JavaScript的同时也在玩Cordova/PhoneGap,所以请温柔一点 我有一个两边都有按钮的文本框,右边用来给文本框值加1(+在上面),左边用来从文本框中减去1(-在上面)。我的目的是让页面/应用程序加载首次在文本框中显示0值。一旦有人按下+按钮,文本框应该从0增加到1,并随着+的每次单击再增加1。如果关闭并重新打开应用程序,它应该记

首先,请帮助我纯粹用JavaScript来理解这一点。没有jQuery或任何插件。我正试图将其编码为在Cordova/PhoneGap中工作。我在教自己JavaScript的同时也在玩Cordova/PhoneGap,所以请温柔一点

我有一个两边都有按钮的文本框,右边用来给文本框值加1(+在上面),左边用来从文本框中减去1(-在上面)。我的目的是让页面/应用程序加载首次在文本框中显示0值。一旦有人按下+按钮,文本框应该从0增加到1,并随着+的每次单击再增加1。如果关闭并重新打开应用程序,它应该记住关闭应用程序之前文本框中的最后一个数字

它可以在浏览器测试中工作,它会导致PhoneGap的iPhone应用程序不再识别PhoneGap重置应用程序的手势等,按下+/-按钮会使文本框的增量/减量过慢,并且即使设置了min=“0”,它也会变为负值。我做错了什么?(我知道由于沙箱的原因,本地存储无法在代码段中完成,因此如果您希望我安装JSFIDLE或其他东西,请告诉我该怎么做。)

window.onload=function(){
var CapsNum=localStorage.getItem(“CapsNum”);
如果(CapsNum==null){
CapsNum=“0”;
}否则{
document.getElementById(“caps”).value=CapsNum;
}}
window.onbeforeunload=函数(){
localStorage.setItem(“CapsNum”,document.getElementById(“caps”).value);
}
函数PlusCaps(){
localStorage.setItem(“CapsNum”,document.getElementById(“caps”).value++);
}
函数MinusCaps(){
setItem(“CapsNum”,document.getElementById(“caps”).value--);
}

因此,您似乎正在更改并将值持久化到本地存储中。这不会更新页面上的值。我通过修改示例创建了一个小函数,它可以更新localstorage中的状态,同时更新textbox中的值

window.onload=function(){
//var CapsNum=localStorage.getItem(“CapsNum”);
如果(CapsNum==null){
CapsNum=“0”;
}否则{
document.getElementById(“caps”).value=CapsNum;
}
}
window.onbeforeunload=函数(){
localStorage.setItem(“CapsNum”,document.getElementById(“caps”).value);
}
函数PlusCaps(){
var nextValue=parseInt(document.getElementById(“caps”).value)+1;
设置下一个值(下一个值);
}
函数MinusCaps(){
var nextValue=parseInt(document.getElementById(“caps”).value)-1;
设置下一个值(下一个值);
}
函数设置nextValue(nextValue){
//setItem(“CapsNum”,nextValue);
document.getElementById(“caps”).value=nextValue;
}


谢谢你的帮助。我将您的代码加载到我的代码中,打开Chrome的开发工具,然后单击加号按钮,出现以下错误:“未捕获引用错误:PlusCaps未在HTMLInputElement.onclick(index.html:52)中定义”我做错了什么?我想您可能没有复制PlusCaps函数。如果您通过单击“运行代码段”来运行代码,那么它会运行吗?这就是问题所在。我确保密码在里面。您的代码片段在我使用计算机时运行并尝试过。(我现在正在使用SO手机应用程序。)好的。我很笨。我漏掉了一个结尾}这把一切都搞砸了。我把它修好了,现在它什么也没做。为了测试,我将您的代码放入JSFIDLE中,看看会发生什么,并得到相同的结果。我做错了什么?因此JSFIDLE中的JavaScript没有将文本框的值计算为字符串。在这把小提琴里,我解决了这个问题。我也会更新这篇文章来反映。