首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以形式传递Javascript变量

以形式传递Javascript变量
EN

Stack Overflow用户
提问于 2014-09-27 04:15:14
回答 1查看 196关注 0票数 0

我刚开始使用javascript,很难解决脚本中的一个问题。当我单击提交表单到一个php脚本时,我想传递变量"outVal“。"outVal“的值将从脚本中的"output”值中获得。我不知道如何将“输出”的值传递给"outVal“。我一直在寻找解决方案,并尝试了其中的每一种方法,但都行不通。也许有人能帮我找到合适的解决办法。我的代码如下:注意:这两个代码都在同一个文件中。

HTML:

代码语言:javascript
复制
<{includeq file="db:frontend_breadcrumbs.tpl"}>
<div>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="./assets/js/jsoneditor.min.js"></script>

<div class='row'>
    <div class='span8 col-md-8 columns eight large-8'>  
        <form action="./applyProcess.php" method="post" enctype="multipart/form-data">
            <label for="file">Filename:</label>
            <input type="file" name="file" id="file"><br>
            <input type="submit" name="submit" value="Upload">
            <input type="hidden" name="hashAlgo" value="<{$hashAlgo}>">
            <input type="hidden" name="tempDirName" value="<{$tempDirName}>">
            <input type="hidden" name="op" value="upload">
            <input type="hidden" id="outVal" name="outVal">
        </form>

        <div id='editor_holder'></div>
    </div>
</div>

    <textarea id='output' style='width: 100%; height: 300px; font-family: monospace;' class='form-control'></textarea>

Javascript:

代码语言:javascript
复制
<script>
(function() {
    var jsoneditor;
    // Divs/textareas on the page
    document.getElementById('output').style.display = 'none';
    var $output = document.getElementById('output');
    var $editor = document.getElementById('editor_holder');
    var $outVal =  document.getElementById('outVal');


    var $jsonschema = <{$applyProcessJsonSchema}>;

    var reload = function(keep_value) {
        var $startvalue = (jsoneditor && keep_value)? jsoneditor.getValue() : <{$applyProcessRequestData}>;
        if(jsoneditor) jsoneditor.destroy();
        jsoneditor = new JSONEditor($editor,{
            ajax: true,
            schema: $jsonschema,
            startval: $startvalue,
            disable_array_add: true,
            disable_array_delete: false,
            disable_array_reorder: true,
            disable_edit_json: true,
            disable_properties: true
        });

        // When the value of the editor changes, update the JSON output and validation message
        jsoneditor.on('change',function() {
            var json = jsoneditor.getValue();
            $output.value = JSON.stringify(json,null,2);
            var validation_errors = jsoneditor.validate();
            if(validation_errors.length) {
                var error = JSON.stringify(validation_errors,null,2);
                alert("Validation Error" + error);
                reload(true);
            }
        });
        $outVal.value = $output.value;
    };
    reload();
})();

function applySubmit() {
    var $output = document.getElementById('output');
    var $outVal =  document.getElementById('outVal');
    $outVal.value = $output.value;
}
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-27 04:34:24

在提交表单调用applysubmit函数之前,它会修改表单值,请检查下面的代码,将onsubmit事件添加到form元素中,

代码语言:javascript
复制
<form action="./applyProcess.php" method="post" onsubmit="return applySubmit();" enctype="multipart/form-data">


function applySubmit() {
        var $output = document.getElementById('output');
        var $outVal =  document.getElementById('outVal');
        $outVal.value = $output.value;
        return true;
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26071222

复制
相关文章

相似问题

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