【发布时间】:2014-06-17 13:44:55
【问题描述】:
我在提交时遇到了非常困难的时间。每次我尝试调用我的函数时,我什么也得不到。一旦我点击“提交”,我的表格就会清空,没有任何反应。它应该调用一个新页面来显示用户输入的信息。
我在 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()">
如果您需要查看更多代码,我很乐意提供帮助。所有表单名称和变量都匹配。我无法弄清楚这一点,并希望得到您的帮助。
【问题讨论】:
-
当您提交表单时,它会使用来自服务器的响应重新加载页面。
-
这是您的实际代码吗?您的表单没有
action属性,因此它可能会在提交时重新加载同一页面(并显示一个新的空表单)。 -
表单需要一个“操作”,您可以为其提供一个 url。 (以及诸如 post 或 get 之类的方法。)也许您应该只从按钮调用您的方法?
-
onsubmit 你的表单调用验证,总是返回true,所以提交到服务器的表单,默认为与你没有定义动作相同的url,它将使用GET(默认)作为您还没有定义方法,这将导致页面重新加载并显示一个新的空白表单(除非服务器正在更改它)。也不要使用
with(如here所述)。
标签: javascript forms function operator-keyword onsubmit