表单提交后怎么样才能不清空文本框和下拉框的值呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表单提交后怎么样才能不清空文本框和下拉框的值呢?相关的知识,希望对你有一定的参考价值。

表单提交后怎么样才能不清空文本框和下拉框的值呢?

submit是直接提交数据给action中的程序处理的(非异步处理),submit之后当前网页就转到action的程序去了,直到action中的程序重新输出网页内容或者转向其他网页。
你在submit按钮的onclick事件中不应该使用submit而是,Ajax的异步提交,类似下面的程序:
javascript code
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function submit_realtime()
if (window.XMLHttpRequest) // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
else // code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.onreadystatechange = function()
//接收返回值得处理函数,
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
//在这里将Text area清空
documet.commentform.comment_message.value='';


xmlhttp.open("POST", "你的action处理程序", true); // true表示异步处理
xmlhttp.send();


xmlhttp.onreadystatechange=function()

if (xmlhttp.readyState==4 && xmlhttp.status==200)

document.getElementById("myDiv").innerhtml=xmlhttp.responseText;


xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();
参考技术A 表单大师有这个功能,何不参考下追问

现在文本框可以不清空了,下拉框还是不行

只是尝试播放框架,提交表单的值为空

【中文标题】只是尝试播放框架,提交表单的值为空【英文标题】:Just trying Play framework, the value from the submitted form is null 【发布时间】:2014-09-03 18:46:45 【问题描述】:

我刚刚尝试了 Play 框架,并使用模板 play-java-intro 运行示例应用程序。

应用程序的索引页由一个“名称”文本框和一个提交按钮组成。如果我单击提交按钮,它将文本框的“名称”值存储到“人员”表中(数据库使用 H2)。但是,“名称”值未能发送到控制器。它在控制器中返回为空值。

模型: Person.java

@Entity
public class Person extends Model 

    @Id
    public String id;

    public String name;

视图: index.scala.html

@()

@main("Welcome to Play") 
    <script type='text/javascript' src='@routes.Assets.at("javascripts/index.js")'></script>

    <ul id="persons"></ul>

    <form method="POST" action="@routes.Application.addPerson()">
        <input type="text" name="name" />
        <button>Add Person</button>
    </form>

控制器: Application.java

public class Application extends Controller 

    public static Result index() 
        return ok(index.render());
    

    public static Result addPerson() 
        //The person.name is null here
        Person person = Form.form(Person.class).bindFromRequest().get();
        person.save();
        return redirect(routes.Application.index());
    

    ...

在控制器中,当“添加人员”按钮被点击时,函数 addPerson 被调用。 person 对象从 Form.form(Person.class).bindFromRequest().get(); 返回。问题是返回的person 对象中的name 属性为空。

有人知道代码有什么问题吗?

【问题讨论】:

您是否将Person 传递回视图? 我不太明白你的意思,代码还是原封不动的,我没有改变它们的任何部分。我在 Eclipse 中使用调试器检查过,Person.name 为空。 我过去只使用过 Scala 游戏,所以我在这里继续记忆。您是否尝试过输入的名称Person.name?另外,你用的是什么版本的play? 2.x.x? 你输入的名字是什么意思?我正在使用最新版本的激活器(1.2.10)。所以我猜Play肯定是v2。 我刚刚查明原因,是Eclipse的自动构建搞乱了代码生成。 【参考方案1】:

刚刚发现这个answer。

事实证明,Eclipse 的自动构建会干扰字节码的生成。

这就是我收拾烂摊子的方法:

在 Eclipse 中,取消选中:项目 -> 自动构建 在项目文件夹的激活器控制台中,输入命令:clean 输入命令:编译 输入命令:运行

【讨论】:

我正在使用 IntelliJ,但仍然面临这个问题!有什么可能的解决办法吗?

以上是关于表单提交后怎么样才能不清空文本框和下拉框的值呢?的主要内容,如果未能解决你的问题,请参考以下文章

Action怎样获取页面的值呢?

winform 程序 如何实现输入文本框 出现下拉数据提示(数据库读取)

layui表单如何提交下拉框的键值

vue清空表单数据后显示所有列表内容

angularJS 可编辑下拉选项框

jquery multiSelect 怎么清空选择