给出以下代码:
<form action="/map" method="POST" id="submitform">
<input type="text" name="uid" id="UID"/>
</form>
<button type="submit" id="toSubmit" form="submitform" value="submit" >Submit</button>
我有一个功能很好的函数,它可以将数据发送到此表单中并单击“ toSubmit”按钮。
function getData(uid) {
document.getElementById("UID").value = uid;
alert(document.getElementById("UID").value);
document.getElementById("toSubmit").click();
}
在Node.js服务器的代码段下面;
router.post('/map', function(req, res, next) {
if (!req.body) return res.sendStatus(400);
var id = req.body.uid;
console.log(id);
});
我正在将Node.js与express.js和body-parser一起使用。
总而言之,如果我提交数据而不调用getData(uid)
函数,则div可以正常工作,只需键入一些输入,然后单击按钮,服务器就会接收到数据,但是当我尝试使div和按钮invisible(display:none;)
并使用该功能模拟点击并向数据发送错误的内容。
我认为此.click()
函数可能存在限制问题。
我该如何解决?
答案 0 :(得分:1)
如果ID无效,您可以尝试使用名称提交。
<form name="formName" id="submitForm">
<input type="text" />
</form>
function submitFormFunction(){
document.formName.action="yourUrl";
document.formName.submit();
}
答案 1 :(得分:0)
您不希望模拟按钮,而是要模拟表单提交:
document.getElementById("submitform").submit();
这应该为您捆绑所有名称输入及其数据。
根据浏览器,您还可以尝试:
document.forms["submitform"].submit();