在onsubmit上调用javascript以发布用户输入

在onsubmit上调用javascript以发布用户输入,javascript,forms,function,operator-keyword,onsubmit,Javascript,Forms,Function,Operator Keyword,Onsubmit,我在这个问题上真的很困难。每次我尝试调用我的函数时,都一无所获。只要我点击“提交”,我的表单就会清空,什么也没发生。它应该调用一个新页面来显示用户输入的信息 关于stackoverflow,我已经问了一个又一个问题,找不到我的答案。我只是在学习Javascript,这对你们来说可能是一个非常简单的问题,但因为我在这里找不到任何新手级别的东西,所以我一直在向你们推荐我的“简单”答案。我不知道如何在没有大量代码的情况下提交这个问题。。。所以很抱歉代码太长。我只使用了表单中的一个示例 <scri

我在这个问题上真的很困难。每次我尝试调用我的函数时,都一无所获。只要我点击“提交”,我的表单就会清空,什么也没发生。它应该调用一个新页面来显示用户输入的信息

关于stackoverflow,我已经问了一个又一个问题,找不到我的答案。我只是在学习Javascript,这对你们来说可能是一个非常简单的问题,但因为我在这里找不到任何新手级别的东西,所以我一直在向你们推荐我的“简单”答案。我不知道如何在没有大量代码的情况下提交这个问题。。。所以很抱歉代码太长。我只使用了表单中的一个示例

<script>
function ScheduledEvent(evtDate){
    evt.evtDate = evtDate;
    evt.PrintEvent = PrintEvent
}
function PrintEvent(){
    document.write("<p> You have scheduled an event on " + evt.evtDate);
}
function Validate(){
    with (document.evtForm){
        events = new ScheduledEvent(evtDate.value);
    }
    with (events){
        evt.PrintEvent();
    }
    return true;
}
</script>

<form name="evtForm" onsubmit="Validate()">

如果您需要查看更多代码,我很乐意为您效劳。所有表单名称和变量都匹配。我想不出这一点,希望你能帮我。

那么你做错了。这背后有很多原因-

您的Validate方法返回true,这意味着它不会停止表单提交。因此,表单将被提交,相同的页面将重新加载。这就解释了为什么它会被重置。它发生在本地,因此您无法看到页面刷新

您正在提交表单之前调用PrintEvent。因此,document.write实际上是在文档中写入值,但写入后,页面会被发回并重新加载。因此,您无法查看更新的信息

您正在使用document.write,它只在当前页面上写入,因此不会将您带到其他页面。请记住,每次加载页面时,javascript也会加载,这意味着您的javascript对象和状态将丢失,并将重新初始化

当javascript使用document.write写入时,它将不会清除以前呈现的项目,包括HTMLs、表单以及该页面上已呈现的任何内容。它只会在body标记的底部附加一行。要进行测试,请从validate返回false,您将能够看到写入的项

如果您愿意使用新页面,那么您必须将值保存到某个位置,或者保存在服务器上,或者使用客户端本地存储或cookie。试着用谷歌搜索如何做到这一点


当您提交表单时,它会重新加载带有服务器响应的页面。这是您的实际代码吗?您的表单没有action属性,因此它可能在提交时重新加载相同的页面,并显示一个新的空表单。表单需要一个“action”,您可以为其提供url。以及post或get等方法。也许你应该通过一个按钮调用你的方法?表单的提交调用validate,with总是返回true,因此表单with submit to the server默认为相同的url,因为你没有定义任何操作,它将使用GET默认值,因为您尚未定义方法,这将导致页面重新加载并显示新的空白表单,除非服务器正在更改该表单。也不要使用如前所述。谢谢所有的答案!我写的代码完全不符合我的书中的要求,他们希望你这样做,所以我很沮丧,我完全按照我应该的方式打字,却一无所获。你所有的回答都有道理,但我不知道你的无知。