在表单提交后显示消息的方法
approach for displaying message after form submit
我有一个包含名称、电子邮件、消息和captcha字段的表单。
我可以提交表单,并可以在服务器端验证captcha。如果一切正常,我必须使用requestDispatcher显示一个jsp。如果captcha正确,一切都很好,但如果它不正确,我会将用户重定向到显示表单的同一页面,以便用户可以重新输入captcha。但这种方法的主要问题是表单被清除,这意味着用户必须再次填充整个表单。我该如何避免这种情况,这样用户就不需要重新填写表格了。
他们还有其他更好的方法吗。
Iv'e已经尝试过进行ajax调用来验证captcha,但这种方法遇到了一些问题。无法在jquery ajax回调函数中提交表单
您可以这样做,在某个div上调用click事件,比如"submit",然后调用ajax调用并获得结果。根据结果,您可以决定是否提交表格。
提交是DIVprintCoupon是形式
$("#submit").click(function(){
var response = '';
$.ajax({ type: "GET",
url: "ajaxprintcoupon",
async: false,
success : function(text)
{
response = text;
}
});
alert(response);
if(response == 'Testing'){
$('#printCoupon').submit();
}else{
// no change
}
});
您必须在JS代码中使用XmlHTTPRequest。
你可以为得到答案指定回调,并根据自己的意愿进行处理。在我的案例中,我从服务器获取要输出的代码,具有ALL INPUTS的Form保持在以前的条件下,html页面上唯一的div"output"被修改。
以下是我的程序的一个简短示例:页面的html
<script type="text/javascript" src="./js/script.js">/script>
<form name="someForm">
<p><b>Enter your text here:</b></p>`
<p><textarea rows="10" cols="45" name="code"></textarea></p>
<input type="button" value="Send it" onclick="sendIt()"/>
</form> </code>
<div id="output"></div>
在我的情况下,script.js只更新页面的一部分
function sendIt() {
var theCode = document.codeHolderForm.code.value;
var linkToDiv = document.getElementById("output");
linkToDiv.innerHTML = 'p> Server response below: p>';
var request = getXmlHttp();
request.open("POST", "/", true);
request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
request.onreadystatechange = function () {
if (request.readyState != 4) return;
if (request.status == 200) {
linkToDiv.innerHTML += 'p>' + request.responseText + '/p>';
} else {
handleError(request.statusText);
}
};
request.send("code=" + theCode);
}
function handleError(message) {
alert("Error: "+message)
}
function getXmlHttp() {
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
相关文章:
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 在javaservlet doPost方法中启动线程时,无法返回异常消息
- javascript在html元素方法运行setTimeout后返回此消息
- Meteor方法-处理消息时出现内部异常
- 有没有一种简单的转换方法可以将chrome消息传递转换为safari消息传递语法
- jsPDF addHTML方法不工作,没有错误消息
- 在表单提交后显示消息的方法
- jQuery验证自定义方法规则和具有动态名称的消息
- 有没有可能的方法可以在一次ASP按钮单击中同时显示JavaScript和服务器端代码中的消息
- 对象 #<传入消息> 没有方法“post”
- 在 AngularJS 中,如何使指令成为对象,以便可以向它“传递消息”(在其上调用方法)
- 处理 nodejs 错误并提供不同自定义消息详细信息的最佳方法
- 确实存在一种重定向和显示 javascript 消息的方法
- 如何从java中的方法向javascript发送成功消息
- 警报消息在 Ajax Web 方法中无法正常工作
- 取消默认的onbefoarunload弹出消息在方法内
- 关于确定数组中存储的最大值的不同方法的一些问题(加上输出消息问题)
- canDeactivate 方法中的消息框在 Firefox 25.0 中抛出错误
- 有没有其他方法可以在不对 javascript 中的内容进行换行的情况下打印出调试消息
- React,在组件事件上呈现消息的最佳方法