【问题标题】:Form to perform two different actions执行两种不同动作的表格
【发布时间】:2016-04-18 06:55:38
【问题描述】:

我的 aspx 页面中有一个带有提交按钮的表单标签。

<form id="userReg"  method="post">
      <input type="submit" id="submit" value="Submit" onclick="doActions();" />
</form>

当我单击提交按钮时,我想做两个不同的操作,即重定向到另一个 web 表单,然后重定向到另一个 url。

Javascript

        function doActions() {
        userForm = document.getElementById('userReg');
        userForm.action = 'GettingUserDetails.aspx';
        userForm.submit();
        userForm.action = 'Confirmationurl.com';
        userForm.submit();
    }

它正在执行'GettingUserDetails.aspx' 操作,之后它不执行Confirmationurl.com 操作。

我怎样才能同时执行这两个操作

【问题讨论】:

  • 通过 Ajax 进行第一次提交,或者在第一次提交的响应中进行重定向。
  • 在回调中传递第二个函数?
  • userForm = document.getElementById('userReg'); userForm2 = userForm; 现在在userFormuserForm2 上尝试提交功能
  • @nnnnnn Tq,我会试试这个
  • @nnnnnn 如果我尝试使用 ajax,我将无法检索表单值。例如:Request.Form["first_name"] 给出 null 即使它有一个值

标签: javascript jquery html asp.net forms


【解决方案1】:
<form name=Form1 action= "login1.php" method=post>
Username <input type="text" name="username">
Password <input type="password" name="password">
<input type="submit" value="Send" name="button1" 
                     onclick="return OnButton1();">

现在,我们得到了一个表格。当我们点击提交按钮时,它会调用一个 JavaScript 函数:

<script language="javascript">
<!--
function OnButton1()
{
    document.Form1.action = "GettingUserDetails.aspx"    // First target
    document.Form1.target = "iframe1";    // Open in a iframe
    document.Form1.submit();        // Submit the page
    document.Form1.action = "Confirmationurl.com"    // Second target
    document.Form1.target = "iframe2";    // Open in a iframe
    document.Form1.submit();        // Submit the page
    return true;
}
-->
</script>

好的,现在我们将数据提交到两个页面。正如你所看到的,他们有一个像框架这样的目标。这是因为我们需要它来打开包含数据的两个新页面,但为了不打扰用户,我们像这样隐藏 IFRAME:

<div style="visibility:hidden">
<iframe NAME="iframe1" WIDTH="40" HEIGHT="40"></iframe>
<iframe NAME="iframe2" WIDTH="40" HEIGHT="40"></iframe>
</div>

页面会将数据发送到 IFRAME,信息将按照您的要求进行处理。

【讨论】:

    【解决方案2】:

    添加 Ajax 会更好。

    function doActions() {
       $.ajax({
         type: "POST",
          url: "GettingUserDetails.aspx",
          data: $(this).serialize(),
          success: function() {
            // callback code here
               userForm.action = 'Confirmationurl.com';
               userForm.submit();
           }
        })
    
    }
    
    $(userForm).on('submit', function(ev){
     ev.preventDefault();
     doActions();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 2019-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多