2016-01-29 154 views
0

我有pjax在大多數情況下工作正常,但提交表單的時候,我發現了在控制檯一個奇怪的錯誤信息收到錯誤通知:PJAX與Laravel表單提交

Uncaught TypeError: Cannot read property 'tagName' of undefined

我跟蹤下來的pjax.js到線123,這就是:

function handleSubmit(event, container, options) { 
    options = optionsFor(container, options) 

    var form = event.currentTarget 

    if (form.tagName.toUpperCase() !== 'FORM') //error occurs here 
     throw "$.pjax.submit requires a form element" 

    var defaults = { 
     type: form.method.toUpperCase(), 
     url: form.action, 
     container: $(form).attr('data-pjax'), 
     target: form 
    } 

的代碼似乎仍然正確觸發,但我想清理錯誤。

所以,我增加了一個console.log(form)之前只是看發生了什麼事,這裏就是我的了:

undefined 
Uncaught TypeError: Cannot read property 'tagName' of undefined 
<form method="POST" ... 

空白數據,一旦有看起來它必須被燒成方法handleSubmit()兩次,一次形式,但我不明白爲什麼。這裏就是我火pjax:

$(document).on('submit', 'form[data-pjax]', function(event) { 
    $.pjax.submit(event, '#pjax-body'); 
}) 

編輯:這裏是我的形式看起來像(用刀片)

{!! Form::open(['url'=>['users/changestatus'], 'data-pjax']) !!} 
{!! csrf_field() !!} 
<input type="hidden" name="id" value="{{ $user->id}}"> 
<input type="hidden" name="status" value="{{ $user->status }}"> 
<button type="submit" >Update</i></button> 
{!! Form::close() !!}: 
+0

您的'var形式'問題,因爲它不包含任何值。 –

+0

提交的表單不是空的。已經將該表格添加到問題中以供澄清。 – TH1981

回答

0

我想通了。

我提交表單兩次:一次通過按鈕,一次通過一些ajax,我會在重構之前設置用於pjax。基本上歸結爲一個愚蠢的監督