[英]JavaScript: fill HTML form using JavaScript and submit
I need to fill HTML form like this: 我需要这样填写HTML表单:
<form action="http://www.example.net/index.php" method="post">
<div class="poll">
<p class="poll-answer">
<label><input type='radio' name='option_id' value='12' />Abc</label>
</p>
<p class="poll-answer">
<label><input type='radio' name='option_id' value='34' />Def</label>
</p>
<input type="hidden" name="poll_id" value="56" />
<input type="submit" value="Submit!" />
</div>
</form>
I need to fill it using JavaScript and send it. 我需要使用JavaScript填写并发送。
I writed: 我写道:
<script>
function post(path) {
method = "post";
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "radio");
hiddenField.setAttribute("name", "option_id");
hiddenField.setAttribute("value", "12");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "poll_id");
hiddenField.setAttribute("value", "56");
form.submit();
}
post('http://www.example.net/index.php');
</script>
But in response there are no data. 但是作为回应,没有数据。 I need to send form with slected Abc
= value='12'
. 我需要发送带有选择的Abc
= value='12'
表格。 Form action is not on my domain. 表单操作不在我的域中。 I have a.com
, form is at b.com
. 我有一个a.com
,表格位于b.com
。
# nc -l 192.168.1.11 -p 80
POST /index.php HTTP/1.1
Host: example.net
Connection: keep-alive
Content-Length: 0
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: null
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.101 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip,deflate
Accept-Language: cs-CZ,cs;q=0.8
What I do bad? 我做什么不好?
You're forgetting to append the hidden field to the form and form to the document. 您忘记将隐藏字段附加到表单并将表单附加到文档。
<script>
function post(path) {
method = "post";
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "radio");
hiddenField.setAttribute("name", "option_id");
hiddenField.setAttribute("value", "12");
form.appendChild(hiddenField);
hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "poll_id");
hiddenField.setAttribute("value", "56");
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
}
post('http://www.example.net/index.php');
</script>
You added both form and field, into the document. 您将窗体和字段都添加到文档中。 You need to add the form to the document, and the field to the form: 您需要将表单添加到文档中,并将字段添加到表单中:
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
var hiddenField = document.createElement("input");
// bla bla
form.appendChild(hiddenField);
document.body.appenChild(form);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.