Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
劫持从提交到重定向页面(Javascript)_Javascript_Html_Forms_Http Redirect - Fatal编程技术网

劫持从提交到重定向页面(Javascript)

劫持从提交到重定向页面(Javascript),javascript,html,forms,http-redirect,Javascript,Html,Forms,Http Redirect,因此,我们正在使用在线服务来处理我们网站上的在线研讨会。 我可以完全控制注册页面的HTML,但不能控制注册中使用的PHP文件。目前,登记表如下所示: <form accept-charset="UTF-8" name="regform" id="regform" action="http://www.onlinemeetingnow.com/register/notify.php" class="infusion-form" method="POST"> <div class=

因此,我们正在使用在线服务来处理我们网站上的在线研讨会。 我可以完全控制注册页面的HTML,但不能控制注册中使用的PHP文件。目前,登记表如下所示:

<form accept-charset="UTF-8" name="regform" id="regform" action="http://www.onlinemeetingnow.com/register/notify.php" class="infusion-form" method="POST">
<div class="infusion-field">
    <label for="inf_field_FirstName">First Name *</label>
    <input class="infusion-field-input-container" id="name" name="name" type="text" value="Your First Name" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"/>
</div>
<div class="infusion-field">
    <label for="inf_field_Email">Best Email *</label>
    <input class="infusion-field-input-container" id="email" name="email" type="text" value="Your Best Email" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"/>
</div>
<div class="infusion-submit">
    <input type="submit" name="go" value="Sign Up for Webinar!" />
</div>
</form>
但由于某种原因,它不起作用。iframe继续重定向到我不想要的页面,窗口本身也没有被重定向。 我这样做是对的还是有更好的方法

提前感谢您的帮助

杰森


更新:我已经确认javascript从未执行过。我添加了:window.alertJAVASCRIPT已执行;弹出窗口从未出现过,因此这似乎是onSubmit的问题,而不是javascript本身的问题。为什么javascript不能在onSubmit中执行?我尝试将其更改为onSubmit=JavaScript:doRedirect;这也不起作用。

这应该可以做到:

<input type="submit" name="go" onclick="doRedirect();" value="Sign Up for Webinar!" />

如果您愿意尝试AJAX:

<script src="http://code.jquery.com/jquery-2.0.0.min.js"></script>

 <script>
    jQuery(function($) {
    $('#regform').submit( function(e){
        $.ajax({
            type: 'post',
            data: $(this).serialize(),
            url: $(this).attr("action")
        })
                .done(function (data){
                   $(location).attr('href', 'http://stackoverflow.com');
                });
        e.preventDefault();
    });
    });
</script>
  <form accept-charset="UTF-8" name="regform" id="regform" action="http://www.onlinemeetingnow.com/register/notify.php" class="infusion-form" method="POST">
    <div class="infusion-field">
    <label for="inf_field_FirstName">First Name *</label>
    <input class="infusion-field-input-container" id="name" name="name" type="text" value="Your First Name" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"/>
    </div>
    <div class="infusion-field">
    <label for="inf_field_Email">Best Email *</label>
    <input class="infusion-field-input-container" id="email" name="email" type="text" value="Your Best Email" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"/>
    </div>
    <div class="infusion-submit">
    <input type="submit" name="go" value="Sign Up for Webinar!" />
    </div>
    </form>

您应该尝试使用AJAX。您想详细说明一下吗?为什么这不起作用?为什么AJAX会更好?我该如何使用AJAX呢?AJAX使您能够发布表单数据,而无需让用户的浏览器导航到另一个页面,因此基本上,无论notify.php的结果如何,您都可以选择完全忽略它并执行自己的响应。我希望保持php交互。这就是在线服务如何将某人添加到网络研讨会的获批与会者名单中。遗憾的是,这不起作用。Javascript也不能用它执行。我添加了window.alertJAVASCRIPT;没有弹出窗口,我对AJAX完全不熟悉。在目前的情况下,这将如何实施?我会消除表单的onsubmit方法吗?我需要在什么地方引用它吗?1.为什么它不起作用?因为只要点击提交按钮,页面就会重定向到php页面。而不是返回html页面来执行其余的代码,这就是window.location.replace;。2.为什么AJAX会更好?因为这不会将html页面重定向到php页面,所以php代码在使用ajax时在后台执行。在ajax请求成功完成后,ajax函数中.done部分下的代码将执行.Hmm。。。它不再重定向到其他页面了。不幸的是,它没有重定向到http://stackoverflow.com 也可以。有没有办法确保AJAX确实在执行?
<form accept-charset="UTF-8" name="regform" id="regform" class="infusion-form" method="POST">
<script src="http://code.jquery.com/jquery-2.0.0.min.js"></script>

 <script>
    jQuery(function($) {
    $('#regform').submit( function(e){
        $.ajax({
            type: 'post',
            data: $(this).serialize(),
            url: $(this).attr("action")
        })
                .done(function (data){
                   $(location).attr('href', 'http://stackoverflow.com');
                });
        e.preventDefault();
    });
    });
</script>
  <form accept-charset="UTF-8" name="regform" id="regform" action="http://www.onlinemeetingnow.com/register/notify.php" class="infusion-form" method="POST">
    <div class="infusion-field">
    <label for="inf_field_FirstName">First Name *</label>
    <input class="infusion-field-input-container" id="name" name="name" type="text" value="Your First Name" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"/>
    </div>
    <div class="infusion-field">
    <label for="inf_field_Email">Best Email *</label>
    <input class="infusion-field-input-container" id="email" name="email" type="text" value="Your Best Email" onfocus="if(this.value==this.defaultValue)this.value='';" onblur="if(this.value=='')this.value=this.defaultValue;"/>
    </div>
    <div class="infusion-submit">
    <input type="submit" name="go" value="Sign Up for Webinar!" />
    </div>
    </form>