JS:提交表单并在同一页面上呈现结果

Posted

技术标签:

【中文标题】JS:提交表单并在同一页面上呈现结果【英文标题】:JS: Submit form and render results on same page 【发布时间】:2021-05-28 18:37:36 【问题描述】:

提前为我的天真道歉,我绝对不是网络开发人员。

我正在尝试获取一个简单 html 表单的内容,将其作为 GET 请求提交到我正在运行的非常轻量级的服务器,然后在同一页面上呈现结果。到目前为止,这是我的代码:

<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <script>
        var submit_button = $('#submit_form');
        
        submit_button.click(function() 
            
            var word = $('word').val();
            
            var data = '?word=' + word;
            
            var update_div = $('#update_div');
            
            $.ajax(
                type: 'GET',
                url: 'http://35.45.55.65:5000/api',
                data: data,
                success:function(html)
                    update_div.html(html);
                console.log("Done");
                console.log(html)
                
            );
        );
    </script>
    <h1>Enter a word to check</h1>
    <form id="my_form">
        Word: <br/> <input name="word" id="word" type="text" /><br />
        <input id="submit_form" type="submit" value="Submit">
    </form>
    
    <div id="update_div"></div>

从我读过的所有内容来看,这段代码应该可以工作吗?但是,表单根本没有提交,而是 GET 请求被附加到当前 URL,甚至没有运行 JS 代码——就像这样:currentURL.com/test.html?word=hello+world

我真的不确定这里发生了什么,任何帮助将不胜感激!谢谢:)

【问题讨论】:

使用这个var word = $('#word').val(); 【参考方案1】:

您需要阻止表单的默认行为。这就是您将这些值附加到 URL 的原因。

submit_button.click(function (event) 
  event.preventDefault();
 // rest of code

【讨论】:

以上是关于JS:提交表单并在同一页面上呈现结果的主要内容,如果未能解决你的问题,请参考以下文章

通过选中复选框提交表单,并在指定的 div 中显示结果

在同一页面上提交表单时如何预填充下拉列表?

我希望我的 php 表单提交数据并在同一页面但不同的选项卡上重定向

将表单数据提交到另一个 php 页面,但将结果显示回提交表单的同一页面?

PHP + jQuery + Ajax 表单提交 - 同一页面返回结果

在另一个组件中提交按钮,创建辅助功能问题