Javascript 更改时从表单生成JSON字符串以填充营业时间
我有以下html输入Javascript 更改时从表单生成JSON字符串以填充营业时间,javascript,html,json,string,Javascript,Html,Json,String,我有以下html输入 <form id="test" role="form"> <input class="form-control" data-day="monday" type="time" name="open" value="12:00"> <input class="form-control" data-day="monday" type="time" name="close" value="20:00"> <!-- R
<form id="test" role="form">
<input class="form-control" data-day="monday" type="time" name="open" value="12:00">
<input class="form-control" data-day="monday" type="time" name="close" value="20:00">
<!-- Rest of the weekdays -->
<input class="form-control" data-day="sunday" type="time" name="open" value="12:00">
<input class="form-control" data-day="sunday" type="time" name="close" value="23:00">
</form>
<pre id="output"></pre>
我尝试根据输入(更改时)生成JSON字符串。。
我的代码的问题是,当我周日更改时,它会更新(并且只更新)其他日子的所有值
如果前几天我做了一个改变,但什么都没发生,我有点明白为什么它失败了,但现在我已经开始拼命想了
函数到jsonString(表单){
var daysObj={}
var hoursObj={};
var elements=form.querySelectorAll(“输入[type='time']”);
对于(变量i=0;i
使用输入
事件而不是更改
,因为更改
事件仅在输入失去焦点后发生<代码>输入
每次输入值更改时都会触发事件
form.addEventListener("input",function(){})
您每天也使用相同的小时对象。因此,每次迭代只需更改同一对象的open
和close
属性
您需要为hoursObj
创建一个新对象,在设置close
for (var i = 0; i < elements.length; ++i) {
//previous code
//...
if(name=="close"){
hoursObj = {};
}
}
for(变量i=0;i
演示
函数到jsonString(表单){
var daysObj={}
var hoursObj={}
var elements=form.querySelectorAll(“输入[type='time']”);
对于(变量i=0;i
使用输入
事件而不是更改
,因为只有在输入失去焦点后才会发生更改
事件<代码>输入每次输入值更改时都会触发事件
form.addEventListener("input",function(){})
您每天也使用相同的小时对象。因此,每次迭代只需更改同一对象的open
和close
属性
您需要为hoursObj
创建一个新对象,在设置close
for (var i = 0; i < elements.length; ++i) {
//previous code
//...
if(name=="close"){
hoursObj = {};
}
}
for(变量i=0;i
演示
函数到jsonString(表单){
var daysObj={}
var hoursObj={}
var elements=form.querySelectorAll(“输入[type='time']”);
对于(变量i=0;i
谢谢@t.niese让它成为一个片段!谢谢@t.niese让它成为一个片段!感谢您的整理和+1的输入提示!感谢您的整理和+1的输入提示!