編輯 - 顯然沒有人知道什麼讓我興奮。我認爲這只是我在頁面中的其他地方做過的事情,它阻止了正在發送的狀態屬性。問題是我什麼都看不到。我希望有人看到類似的東西,並可以建議我需要看的地方。爲什麼我不能在名稱中發佈'狀態'的表單域?
我在我的頁面上有一個虛擬表單來發布數據到我的網絡應用程序。它是在Rails(使用HAML)中創建的;
=form_tag bulk_invoice_path(''), method: 'put', class: 'mark-sent-form' do
=hidden_field_tag 'invoice[status]', 'Sent'
這將生成以下html;
<form accept-charset="UTF-8" action="/bulk_invoices/" class="mark-sent-form" method="post">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓" />
<input name="_method" type="hidden" value="put" />
<input name="authenticity_token" type="hidden" value="OU8GtbHycR/EJ+H3GG9MN59xI59v47LSaFc2wYZloAs=" />
</div>
<input id="invoice_status" name="invoice[status]" type="hidden" value="Sent" />
</form>
在DOM中,這顯示爲如下
<form accept-charset="UTF-8" action="/bulk_invoices/" class="mark-sent-form" method="post">
<div style="margin:0;padding:0;display:inline">
<input name="utf8" type="hidden" value="✓">
<input name="_method" type="hidden" value="put">
<input name="authenticity_token" type="hidden" value="OU8GtbHycR/EJ+H3GG9MN59xI59v47LSaFc2wYZloAs=">
</div>
<input id="invoice_status" name="invoice[status]" type="hidden" value="Sent">
</form>
這種形式的張貼與jquery(使用的CoffeeScript)像這樣;
jQuery ->
$('a.mark-sent').click -> updateBulkInvoices('.mark-sent-form')
updateBulkInvoices = (form) ->
$(form).attr('action', "/bulk_invoices/#{checkedInvoices().get().join()}").submit()
這種模式使我受益匪淺與其他動作,但「發票[狀態]」似乎導致問題。當表單使用jQuery提交時,隱藏字段不會被傳遞。我在Rails控制檯中看到以下內容;
Parameters: {"utf8"=>"✓", "authenticity_token"=>"+qW9kIih5l2j69w1LK2YfQ9mYQ7nKPDm5XgLZuKB4ic=", "id"=>"16"}
即發票[狀態]字段不與表單參數一起傳遞。如果我將該字段的名稱更改爲其他任何內容,它都可以正常工作,例如
=form_tag bulk_invoice_path(''), method: 'put', class: 'mark-sent-form' do
=hidden_field_tag 'invoice[flatus]', 'sent'
給我在我的控制檯中的以下參數;
Parameters: {"utf8"=>"✓", "authenticity_token"=>"+qW9kIih5l2j69w1LK2YfQ9mYQ7nKPDm5XgLZuKB4ic=", "invoice"=>{"flatus"=>"sent"}, "id"=>"16"}
我看到同樣的事情發生,如果我監控Chrome的開發者工具的「網絡」選項卡,所以我不認爲這是一個Rails的東西,這似乎是一個瀏覽器的問題。儘管如此,我也對Safari和Firefox也有同樣的看法。
在瀏覽器窗體中是狀態某種神奇的保留字嗎?這裏發生了什麼?
不,沒有這樣的保留字我試過了,它的工作正常 –
好的,它不適合我。 – brad
你能發佈生成的HTML表單嗎? –