是否可以在新窗口中提交多个表单?

时间:2012-09-24 21:00:00

标签: javascript jquery forms

所以我创建了大约150个用于负载测试的Testusers。我需要能够快速删除这150个用户。删除用户的当前唯一方法是一次删除用户。删除用户的方法是单击删除按钮,更改表单的值,然后提交。然后会将您带到另一个要求您确认的页面。

<a class="enable-delete-link" onclick="deleteUser(23367)">Delete</a>

function deleteUser(userID) {
            $j('#deleteForm > input').val(userID);
            $j('#deleteForm').submit();
          }

<form action="user-delete.jsp" id="deleteForm" method="post">
<input type="hidden" name="user" value="" />
</form>

是否可以在多个新窗口中多次提交表单,并且可以直接通过并手动点击确认按钮。

我试过了

for(people = 23245; people < 23391; people++){  
$j('#deleteForm > input').val(people);
$j('#deleteForm').attr('target', '_blank');
$j('#deleteForm').submit();
}

但它只会打开一个页面。

谢谢你的帮助!!

2 个答案:

答案 0 :(得分:1)

您不必使用弹出窗口制作表单帖子,您可以使用ajax帖子。

for(var people = 23245; people < 23391; people++){
    $.post('user-delete.jsp', {user: people});
}

据说最好在服务器上进行批量删除,并且可以向该操作提交一系列值。大多数浏览器都对使用此方法必须考虑的并发ajax请求有限制。

你也可以这样做,依次提出每个后续请求:

var range = [];
for(var people = 23245; people < 23391; people++){
    range.push(people);
}

var deleteOne = function(){
    if(range.length > 0){
        // success calls deleteOne again
        $.post('user-delete.jsp', { user: range.pop() }, deleteOne);
    }
};

// kick it off
deleteOne();

答案 1 :(得分:0)

如果您可以重写文件user-delete.jsp,那么您可以将其更改为重新接收POST数组而不是单个用户ID。然后,您可以将表单更改为您可以选择多个用户,组或类似的地方......