Jquery 使用模式窗体更新数组中的对象并显示更新的详细信息
我试图通过单击“编辑”按钮来更新外部对象。 它会弹出一个窗口,我可以在其中输入新信息,然后它会相应地更新用户。 但不知何故,它似乎不起作用。它只是触发一个页面刷新,什么也没发生。 你能帮我修一下吗Jquery 使用模式窗体更新数组中的对象并显示更新的详细信息,jquery,arrays,forms,replace,modal-dialog,Jquery,Arrays,Forms,Replace,Modal Dialog,我试图通过单击“编辑”按钮来更新外部对象。 它会弹出一个窗口,我可以在其中输入新信息,然后它会相应地更新用户。 但不知何故,它似乎不起作用。它只是触发一个页面刷新,什么也没发生。 你能帮我修一下吗 var myData=[{ 公司:“ABC”, 网址:“www.abc.com”, 类型:“内部” }, { 公司名称:“CDE”, 网址:“www.cde.com”, 类型:“内部” }, { 公司:“DEF”, 网址:“www.def.com”, 类型:“外部” }, { 公司名称:“EFG”,
var myData=[{
公司:“ABC”,
网址:“www.abc.com”,
类型:“内部”
}, {
公司名称:“CDE”,
网址:“www.cde.com”,
类型:“内部”
}, {
公司:“DEF”,
网址:“www.def.com”,
类型:“外部”
}, {
公司名称:“EFG”,
网址:“www.efg.com”,
类型:“内部”
}, {
公司:“FGH”,
网址:“www.fgh.com”,
类型:“外部”
}];
$('#createData')。单击(函数(){
createDisplay();
});
函数createDisplay(){
myData.forEach(函数(obj){
$('.container')。追加(
$('').addClass('box').append(
$('').text('公司网站:'),
$('').addClass('compUrl').attr('href',obj.url).text(obj.company),
obj.type='external'?$('
').addClass('edit-btn').text('edit').attr({“数据切换”:“模态”,“数据目标”:“#更新数据”):”
)
)
});
}
$(文档)。在('单击','上。编辑btn',函数(){
var指数=getIndex(本);
$(“#updateForm”).submit(函数(索引){
更新数据(索引);
返回false;
});
});
函数getIndex(项){
返回$(item).parents('.box').index();
}
函数更新数据(obj){
companyName=$('#companyName').val();
companyUrl=$('#companyUrl').val();
var upObj={
公司名称:companyName,,
网址:companyUrl,
类型:“外部”
}
拼接(索引1,upObj);
createDisplay();
}
.box{
高度:100px;
背景色:天蓝色;
边框:1px纯黑;
边缘顶部:5px;
}
创建div
&时代;
接近
更新数据
公司名称
密码
接近
保存更改
好的,我发现了问题。这是我使用的变量索引。我相信提交表格时会被过度使用,这导致了问题
var myData=[{
公司:“ABC”,
网址:“www.abc.com”,
类型:“内部”
}, {
公司名称:“CDE”,
网址:“www.cde.com”,
类型:“内部”
}, {
公司:“DEF”,
网址:“www.def.com”,
类型:“外部”
}, {
公司名称:“EFG”,
网址:“www.efg.com”,
类型:“内部”
}, {
公司:“FGH”,
网址:“www.fgh.com”,
类型:“外部”
}];
$('#createData')。单击(函数(){
createDisplay();
});
函数createDisplay(){
$('.container').empty();
myData.forEach(函数(obj){
$('.container')。追加(
$('').addClass('box').append(
$('').text('公司网站:'),
$('').addClass('compUrl').attr('href',obj.url).text(obj.company),
obj.type='external'?$('
').addClass('edit-btn').text('edit').attr({'data-toggle':'modal','data target':'#updateData'}):'
)
)
});
}
var电流指数;
$(文档)。在('单击','上。编辑btn',函数(){
currentIndex=$(this.parents('.box').index();
});
$('#updateForm')。提交(函数(){
更新数据(当前索引);
返回false;
});
函数更新数据(索引){
companyName=$('#companyName').val();
companyUrl=$('#companyUrl').val();
var upObj={
公司名称:companyName,,
网址:companyUrl,
类型:“外部”
}
拼接(索引1,upObj);
createDisplay();
}
.box{
高度:100px;
背景色:天蓝色;
边框:1px纯黑;
边缘顶部:5px;
}
创建div
&时代;
接近
更新数据
公司名称
网站
接近
保存更改
您的代码的哪一部分不起作用?在提出此类问题之前,请确保您的类引用和ID引用都是正确的。编辑用户
,#newName
,#newDob
,#newImg
。。etc是不匹配的选择器。难怪它不起作用。此外,您没有用值填充#updateForm
的代码。还有一个语法错误,您没有在$(文档)后面加上括号。在('click','.edit user',function(){…
对错误表示诚挚的歉意!我不知何故混淆了代码,这就是原因。我可以在这里使用replaceWith()吗?比如jQuery(obj)。replaceWith(upObj)?我已更新了代码和说明,并使其更简单。