2017-08-23 17 views
0

我用laravel 5.3如何使用javascript更改表單上的操作?

我的形式是這樣的:

{!! 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

但是,內容不顯示

從該網頁的內容,當我點擊鏈接,並輸入

我怎樣才能解決這個問題只出現在哪裏?

+0

你想改變什麼內容?你是否試圖通過更改動作網址來更改表單域?然後它不能這樣做,你需要通過Ajax加載表單內容或只是通過重新加載頁面 –

回答

0

如果你想改變表單的內容,你需要將表單加載到表單區域。

假設/ shop/detail是另一種形式。你應該這樣做。無論是使用.load(),或阿賈克斯()

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; 
} 

然而,這兩種方法以上是不大可能奏效,因爲我懷疑你/店/細節是唯一內在形式。它最有可能是整個形式。也就是說。這意味着你需要完全替換元素。不將數據加載到舊的表單中。

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