如何提交表格并保持在同一页面上

时间:2011-11-15 16:25:55

标签: javascript html forms redirect form-submit

有一个类似的问题,演示了如何在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>

2 个答案:

答案 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函数中。