我有一个HTML表单,我试图使用Python 请求模块提交。
这是表单的HTML:
<form name="main" id="main" method="post" onSubmit="return validateForm(this);">
validateForm()函数如下所示:
function validateForm(form)
{
if (form.buttonClicked[0].value == "delete"){
deleteCount += 1;
if (deleteCount > 1){
return false;
}
if(form.allowValidateOnDelete && form.allowValidateOnDelete.value == "true")
{
deleteCount = 0;
return validate(form);
}
else
{
return true;
}
}
else{
return validate(form);
}
}
这是验证()
function trimAll(form)
{
form.forwardedToNumber.value = trim(form.forwardedToNumber.value);
}
function validate(form)
{
trimAll(form);
for (var i=0; i < form.active.length; i++) {
if (form.active[i].checked) {
if (form.active[i].value == "false") {
return true;
}
}
}
if (form.forwardedToNumber.value == "") {
alert(errorText(1000, errorText(2201)));
form.forwardedToNumber.select();
return false;
}
return true;
}
如何使用Python提交此表单?
我无法提交以下示例,因为它作为URI没有意义:
session.request(
'POST',
'https://example.com/return validateForm(this);',
data={'active': 'true'}
)
如何提交目标为return function();
的表单?
答案 0 :(得分:2)
onSubmit
处理程序不应与表单的action
混淆(即数据将发布到的URL)。您应该看到onSubmit
作为用户提交表单后立即激活的触发器。如果处理程序的返回值为false,则表单数据根本不会发送到服务器。
要使用requests
执行相同操作,您需要确定表单的action
属性是什么。如果表单没有action
属性,它会将数据发布到与首先获取表单的URL相同的位置。