

Ruby on Railsで開発をしております。

[code]

    button_to '削除', xxxx_path(xxx.id), method: :delete, confirm: '本当に削除しますか？'
    
    #=> <input class="button" data-confirm="本当に削除しますか？" name="commit" type="submit" value="削除" />
    
[/code]

↑のような削除ボタンを作成しており、削除自体は成功するものの、confirmダイアログが成功する場合と成功しない場合がありました。

なぜかと思い、調べている中で、このような記事を見つけました。  
<http://qiita.com/yuji0222/items/80fd7a25486f8bb85752>

どうもtableとthやtdの間にformがある場合、confirmダイアログが出ないみたいです。

そのことがわかったものの、対策案が見つからなかったため、現状はconfirmダイアログを出すのを断念しております。

もし、tableの中で、confirmダイアログを表示できる方法があるようでしたらアドバイスを頂きたく思います。

宜しくお願いします。


CC BY-SA 3.0
2016-07-28T07:06:29.013
27908
2016-07-29T06:06:45.160
13175
question
ruby-on-rails ruby html html5
tableとthやtdの間にformがある場合、confirmダイアログが出なくなってしまいます。


全体を `FORM` で囲むか、`TD`, `TH` の中に `FORM`
を入れる必要があります。それが出来ない場合には、HTMLの構造を見直す必要があります。


CC BY-SA 3.0
2016-07-28T08:54:56.730
27913
2016-07-28T08:54:56.730
76
27908
answer


HTMLの要素は直下の子要素に入れられる要素が限定されているものもあります。  
これはダメですが、

[code]

    <table>
        <form>
            <tr>
                <th></th>
                <td></td>
            </tr>
        </form>
    </table>
    
[/code]

これならOKです

[code]

    <form>
        <table>
            <tr>
                <th></th>
                <td></td>
            </tr>
        </table>
    </form>
    
[/code]


CC BY-SA 3.0
2016-07-29T06:06:45.160
27936
2016-07-29T06:06:45.160
17289
27908
answer