我的主页上有一个表单和JS promise函数:
<form action="/run.php" method="POST" target="_blank" id="myform">
<input type="hidden" name="hiddeninput" id="hiddeninput">
<input type="text" name="userinput" id="userinput">
<button type="submit">Go!</button>
</form>
<script>
document.getElementById('myform').onsubmit = function go() {
// get user input + other unrelated info
.then(function(adding) {
// calculations
result = x;
});
document.getElementById('hiddeninput').value = "whatever"
}
</script>
如果document.getElementById('hiddeninput').value = "whatever"
在JavaScript Promise函数之外,那么它就可以工作(它成功地与表单的其余部分进行了POSTed )。
但是,当它在JavaScript Promise函数中时,它就不起作用了&据我所知,您不能将JavaScript Promise内部的值返回到更高的作用域,所以有没有什么可能的方法可以从Promise函数访问result
,这样我就可以将它设置为等于document.getElementById('hiddeninput').value
发布于 2017-03-11 04:44:45
<form action="/run.php" method="POST" target="_blank" id="myform">
<input type="hidden" name="hiddeninput" id="hiddeninput">
<input type="text" name="userinput" id="userinput">
<button type="submit">Go!</button>
</form>
<script>
document.getElementById('myform').onsubmit = function go(event) {
var form = this;
event.preventDefault();
// get user input + other unrelated info
.then(function(adding) {
// calculations
result = x;
document.getElementById('hiddeninput').value = result;
form.submit();
});
}
</script>
https://stackoverflow.com/questions/42727335
复制相似问题