Javascript没有';t在每次操作后清除提交的值
我有这样一个简单的表:Javascript没有';t在每次操作后清除提交的值,javascript,Javascript,我有这样一个简单的表: <td> <span class='foo' onclick='insertComment(this)' data-id='1' </span> </td> <td> <span class='foo' onclick='insertComment(this)' data-id='2' </span> </td> <td> <span class='foo' onclic
<td> <span class='foo' onclick='insertComment(this)' data-id='1' </span> </td>
<td> <span class='foo' onclick='insertComment(this)' data-id='2' </span> </td>
<td> <span class='foo' onclick='insertComment(this)' data-id='3' </span> </td>
问题是,当我点击一个模态打开的行时,我将数据插入模态,值被提交到我的数据库中。这可以按预期工作,但只有在每次提交后刷新页面时,我才会这样做
但是,如果我一直单击这三行并插入值,那么第二次和第三次单击将包含多个值
以下是我第一次提交时dataString
包含的内容
// id=1&input=something
再次点击
// id=1&input=something
// id=2&input=something
第三次点击
// id=1&input=something
// id=2&input=something
// id=3&input=something
所有这些都只是一次又一次的点击,js应该一次只发送一个post请求,但在第一次点击之后,似乎所有内容都存储在某个地方我建议您使用下一个解决方案:
success: function(response){
window.reload()
}
它将在每次单击后重新加载您的页面。为了获得更好的用户体验,请使按钮处于非活动状态,单击后,它有助于减少意外的多点单击和数据发送。希望有帮助 您需要在
onclick
函数中获取输入值。在用户有机会在输入字段中输入任何内容之前,您正在设置input
。我不确定这为什么会导致参数累积,我怀疑这是在您尚未显示的代码中
我还建议对$.ajax
的数据
参数使用对象而不是字符串。然后jQuery将对其进行正确编码
函数插入命令(div){
//获取数据id
变量id=$(div.data('id');
//开放模态
$(div).attr(“数据切换”、“模式”)
$(div).attr(“数据目标”,“报价模式-”+类型);
//从modal获取输入值
var input=document.getElementById(“用户名输入”);
//检查是否单击了在模式上提交btn
var btn=document.querySelector('.submit btn');
btn.onclick=函数(){
变量数据字符串={
id:id,
输入:input.value
};
//发送ajax帖子
jQuery.ajax({
类型:“POST”,
url:“http://example.com/ajax.php",
数据:dataString,
成功:功能(响应){
}
})
}
}
我看不到任何将旧值附加到数据字符串的内容。我认为问题出在您没有显示的代码中,比如success:
函数。success:
只返回结果,它们更像我显示的最后一个输出。在分配给input
时,您需要使用value
获取输入值代码>应为'var dataString='id='+id+'&input='+input.value;是的,对不起,那是我的错。代码比这个大,所以我不得不在这里写这个,这没有帮助。页面未重新加载。
success: function(response){
window.reload()
}