有一个类似的问题,演示了如何在jQuery中执行此操作。不幸的是,我正在使用原型并且翻译代码并不是很直接。
Submit form and stay on same page?
需要发生的是将值(电子邮件)发布到子域上的页面,并且不会重定向用户。我没有任何控制来编辑子域上的页面。
任何帮助将不胜感激。
function submitEmailForm(){
var userEmail = $('Text').value;
$('EmailForm').action = 'http://subDomain.myDomain.com/?email_address='+userEmail;
$('EmailForm').request({ onComplete: function(){ return false;} });
}
<form method="post" id="EmailForm" onsubmit="submitMobileEmailForm(); return false;">
<input type="text" id="Text"/>
<input type="submit" id="Submit" value=""/>
</form>
答案 0 :(得分:1)
您需要通过JQuery点击按钮将其重定向到同一页面。
http://www.webdeveloper.com/forum/archive/index.php/t-105181.html
答案 1 :(得分:1)
您可以使用AJAX模拟表单提交。
(注意:我使用了一个我作为模板工作的旧项目,所以我使用的一些技术可能有点旧。例如,事件处理可能会有所不同。)
function ajaxFormSubmission(form)
{
xhrThingy = yourFunctionForObtainingXMLHttpRequestInstance();// XHR support is different for various browsers, so you might need to have browser specific code.
xhrThingy.onreadystatechange = eventHandlerHere;
xhrThingy.open('POST', 'theFileThatWillHandleYourRequest.php', true);// The used arguments are: HTTP request Method, request url, asynchronous flag
xhrThingy.setRequestHeader("Content-type", "application/x-www-form-urlencoded");// Simulating Form Submission
var emailData = form.elements['Text'].value;// Extracting needed data from form
var postData = "emailAddress=" + emailData;
xhrThingy.send(postData);
}
然后,eventHandlerHere函数可以检查响应。像这样:
function eventHandlerHere()
{
if (xhrThingy.readyState==4 && xhrThingy.status==200)
{
var response = xhrThingy.responseText
// Do whatever you need to do with the email adress
}
}
在我参与的项目中,我使用嵌套方法进行快速原型设计,因此您的确切实现看起来会有所不同。例如,我引用了xhrThingy,它只在范围内,因为函数嵌套在ajaxFormSubmission函数中。