首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将JavaScript Promise结果添加到隐藏输入字段

将JavaScript Promise结果添加到隐藏输入字段
EN

Stack Overflow用户
提问于 2017-03-11 04:39:44
回答 1查看 118关注 0票数 0

我的主页上有一个表单和JS promise函数:

代码语言:javascript
运行
复制
<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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-11 04:44:45

代码语言:javascript
运行
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42727335

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档