即使在设置操作URL后,为什么表单会被发布到错误的URL?

时间:2017-12-17 04:42:11

标签: javascript php jquery forms laravel

更新:请参阅,表单已提交,但网址错误!如果您在这里教授如何根据用户的动作设置属性,请不要尝试提供帮助,因为我知道该表!

我正在 Laravel 工作,我有一个表格,其中两个提交按钮。我想根据用户点击的按钮提交表单。

我已经尝试过编辑按钮标签,几乎完成了其他答案所提供的所有内容,但似乎没有任何效果!

这是表格代码。

<form method="POST" class="form-material" id="form1">
     {{ csrf_field() }}
     <div class="form-group">
         <input type="email" id="email" name="email" class="form-control" placeholder="E-mail Address" required/>
     </div>
     <div class="form-group">
         <input name="password" id="password" type="password" class="form-control" placeholder="Password" required/>
     </div>
     <div class="form-group actionButtons">
         <p data-action="form1Register" class="btn btn-md btn-info actionButton">Create Account</p>
         <p data-action="form1Login" class="btn btn-md btn-outline-info hidden-md-down actionButton">Login</p><br>
         <small>By Signing up, You agree to <a href="{{ url('tos') }}" target="_blank">Terms of Service</a>.</small>
     </div>
</form>

是的,这是我想要实现的Jquery的一点。

$(".actionButton").click(function() {
    if($(this).data('action') == 'form1Login'){
        $('#form1').attr('action','{{ action("SessionController@store") }}');
        $('#form1').submit();
    } else if($(this).data('action') == 'form1Register') {
        $('#form1').attr('action','{{ action("UserController@store") }}');
        $('#form1').submit();
    } else {
        alert('Oops! Something went really wrong!');
    }
});

我没有使用<button>标签,因为它提交了表单,我认为没有办法阻止它。我已经尝试过给它一个type='button'属性,但它也没有用!它仍然提出了怪异的形式!

我有什么遗漏的吗?因为我在其他系统上使用相同的东西,但它在那里工作正常!

2 个答案:

答案 0 :(得分:2)

$(".actionButton").click(function(e) {
    e.preventDefault();
    if($(this).data('action') == 'form1Login'){
        $('#form1').attr('action','{{ action("SessionController@store") }}');
        $('#form1').submit();
    } else if($(this).data('action') == 'form1Register') {
        $('#form1').attr('action','{{ action("UserController@store") }}');
        $('#form1').submit();
    } else {
        alert('Oops! Something went really wrong!');
    }
});

//你应该阻止动作按钮的默认动作

答案 1 :(得分:0)

解决!

Laravel用户特别注意事项!

表单已提交到正确的URL。但是当我使用 laravel的默认验证器时,它将我重定向回到表单所在的URL。

因此,如果您是laravel用户并希望将表单提交到不同的URL,请创建自己的自定义Validator,以便您可以重定向回某个不同的URL。

感谢大家帮我解决问题!