javascript - 需要用javascript多次提交表单
问题描述
正如标题所说,我需要多次提交表单,表单的操作是一个外部 php 文件。表单提交一次,但我需要它在每个循环中提交一次。
function send_sms(){
var receivers = document.getElementById('receivers').value.toString();
var receivers_array = receivers.split(',');
for(var i = 0; i < receivers_array.length; i++) {
// Trim the excess whitespace.
receivers_array[i] = receivers_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
document.getElementById('receiver').value = receivers_array[i];
document.getElementById("smsForm").submit();
}
}
代码基本上应该做的是拆分用户输入的电话号码并向每个号码发送短信。它提交并将文本发送到数组中的第一个数字,而不是其他输入的数字。拆分并且一切正常(我在所有内容上都使用了 console.log 来检查)。循环也不会中断,因为它在将每个接收器值分配到循环内部后控制台记录了每个接收器值。
更新:让它像这样工作
function send_sms(){
var receivers = document.getElementById('receivers').value.toString();
console.log(receivers);
var receivers_array = receivers.split(',');
console.log(receivers_array[0]);
for(var i = 0; i < receivers_array.length; i++) {
// Trim the excess whitespace.
receivers_array[i] = receivers_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
document.getElementById('receiver').value = receivers_array[i];
console.log(document.getElementById('receiver').value);
//document.getElementById("smsForm").submit();
$.ajax({
url:'../API/sendsms.php',
type:'post',
data:$('#smsForm').serialize(),
success:function(){
alert("worked");
}
});
}
}
解决方案
提交触发页面重新加载/重定向到您的操作。您必须为表单提交添加 ajax 侦听器,这样它就不会在每次提交触发时刷新页面。
$(document).on('submit', 'form#smsForm', function() {
$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
dataType: 'json',
data: $(this).serialize(),
success: function(data) {
console.log('Submitted');
},
error: function(xhr, err) {
console.log('Error');
}
});
return false;
});
function send_sms() {
var receivers = document.getElementById('receivers').value.toString();
var receivers_array = receivers.split(',');
for (var i = 0; i < receivers_array.length; i++) {
// Trim the excess whitespace.
receivers_array[i] = receivers_array[i].replace(/^\s*/, "").replace(/\s*$/, "");
document.getElementById('receiver').value = receivers_array[i];
document.getElementById("smsForm").submit();
}
}
推荐阅读
- git - 将源代码从 github 复制到 Jenkins 中的 docker 容器
- c# - MouseLeftButtonDown 事件不起作用 Wpf
- python - Matplotlib 增加 x 轴上点之间的间距
- c# - 实体框架 - 复杂对象
- symfony4 - 将 Vue-CLI 3 与 Symfony 4 集成
- java - Thymeleaf 中的嵌套循环
- json - 使用 JQ 构建目录树的 JSON
- vba - Excel 中的特殊单元格从 sheet1 复制到 sheet2 并进行错误处理
- c# - 双倍有什么区别?和int?对于 .Equals 比较?
- php - 将选中的行从 html 复选框和搜索结果中的 php 插入数据库