Данные не отправляются на сервер Nodejs по имитации клика - PullRequest
0 голосов
/ 26 сентября 2018

С учетом следующего кода:

<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.

В итоге, divотлично работает, если я отправляю данные без вызова функции getData(uid), просто введите какой-нибудь ввод, затем нажмите кнопку, и сервер получит данные, но когда я попытаюсь сделать div и кнопку invisible(display:none;) и использовать функцию длясмоделируйте щелчок и отправьте данные, что-то идет не так.

Я думаю, что может быть проблема ограничения с этой функцией .click().

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Вы можете попытаться отправить это, используя имя, если идентификатор не работает ..

<form name="formName" id="submitForm">
  <input type="text" />
</form>

function submitFormFunction(){
  document.formName.action="yourUrl";
  document.formName.submit();
}
0 голосов
/ 26 сентября 2018

Вместо того, чтобы имитировать нажатие кнопки, вы должны симулировать отправку формы:

   document.getElementById("submitform").submit();

Это должно связать все входные имена и их данные для вас, как вы ожидаете.

В зависимости от браузера вы также можете попробовать:

    document.forms["submitform"].submit();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...