【问题标题】:How do I change the action on a form with javascript?如何使用 javascript 更改表单上的操作?
【发布时间】:2018-01-31 12:17:29
【问题描述】:

我使用 laravel 5.3

我的表格是这样的:

{!! Form::open(['route' => 'shop.process','id'=>'my-form']) !!}
    ...
{!! Form::close() !!}

如果满足一定条件,我想改变动作

我在 javascript 中的情况是这样的:

if (true) {
    $('#my-form').attr('action', '/shop/detail')
    return true;
}

如果条件满足,则将url转换成这样就成功了:

http://myshop.dev/shop/detail

但是,内容不显示

当我点击 url 并输入时,该页面的内容才会出现

我该如何解决这个问题?

【问题讨论】:

  • 您要更改哪些内容?您是否尝试通过更改操作 url 来更改表单字段?那么它就不能像你需要通过ajax加载表单内容或者仅仅通过重新加载页面来完成

标签: javascript jquery forms redirect laravel-5.3


【解决方案1】:

如果您想更改表单的内容,您需要使用 ajax 将该表单加载到表单区域中。

假设 /shop/detail 是另一种形式。你应该这样做。使用 .load() 或 .ajax()

if (true) {
   $('#my-form').attr('action', '/shop/detail');
   $('#my-form').load('/shop/detail');
   return true;
}

或者..

if (true) {
    $('#my-form').attr('action', '/shop/detail')
    $.ajax({
       url:'/shop/detail',
       success:function(data){
           $('#my-form').html(data);
       } 
    })
   return true;
}

但是,上述两种方法不太可能起作用,因为我怀疑您的 /shop/detail 只是内部形式。它很可能是整个表格。 IE 。这意味着您需要完全替换该元素。不将数据加载到旧表单中。

if (true) {
    $.ajax({
       url:'/shop/detail',
       success:function(data){
           $('#my-form').replaceWith(data);
           return true;
       } 
    })
}

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 1970-01-01
    • 2013-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    相关资源
    最近更新 更多