2016-09-30 9 views
0

私はLaravelアプリケーションでページのフォームを作成しています。フォームのロード時にオプションが事前に選択されていないため、どのように修正できるか教えてもらえますか?何らかの理由で私が作成フォームに新しいエンティティを作成しようとすると、既に選択が行われています。ラジオボタンと

<div class="radio-custom radio-primary radio-inline"> 
    <input id="active" type="radio" name="is_active" {{ (old('is_active') == NULL || ((isset($title) && $title->is_active == 1))) ? 'checked="checked"' : '' }} value="1"> 
    <label for="active">Active</label> 
</div> 
<div class="radio-custom radio-primary radio-inline"> 
    <input id="active" type="radio" name="is_active" {{ (old('is_active') == NULL || ((isset($title) && $title->is_active == 0))) ? 'checked="checked"' : '' }} value="0"> 
    <label for="inactive">Inactive</label> 
</div> 
+0

どのような状況でボックスをオフにしますか? すべてのページ(編集+フォームの作成)または作成ページ上でのみ? –

+0

私は、作成フィールドが読み込まれたときに、事前に選択されたラジオボタンがないことを確認したいだけです。現在、作成フォームがロードされると、非アクティブなラジオボタンが選択されます。 – user3732216

答えて

1

これは問題を解決するはずです。 if/elseステートメント内に論理エラーがあります。古い値がないときは、両方のラジオボタンをチェックしようとします。

<div class="radio-custom radio-primary radio-inline"> 
    <input id="active" type="radio" name="is_active" {{ (old('is_active') !== NULL || ((isset($title) && $title->is_active == 1))) ? 'checked="checked"' : '' }} value="1"> 
    <label for="active">Active</label> 
</div> 
<div class="radio-custom radio-primary radio-inline"> 
    <input id="active" type="radio" name="is_active" {{ (old('is_active') !== NULL || ((isset($title) && $title->is_active == 0))) ? 'checked="checked"' : '' }} value="0"> 
    <label for="inactive">Inactive</label> 
</div> 

これは、同様に動作するはずです:

<div class="radio-custom radio-primary radio-inline"> 
    <input id="active" type="radio" name="is_active" {{ (isset($title) && $title->is_active == 1) ? 'checked="checked"' : '' }} value="1"> 
    <label for="active">Active</label> 
</div> 
<div class="radio-custom radio-primary radio-inline"> 
    <input id="active" type="radio" name="is_active" {{ (isset($title) && $title->is_active == 0) ? 'checked="checked"' : '' }} value="0"> 
    <label for="inactive">Inactive</label> 
</div> 

が、これはあなたの問題を解決を願っています。 :) 最初のコードは不必要なコードなので、2番目のソリューションを強く推奨します。

+0

その2番目の解決策に問題があると思います。 – user3732216

+0

修正しました。多くの右かっこに使用されます。 :) –

0

問題は、ブラウザに値がキャッシュされている可能性が高いためです。 <form>タグにautocomplete='off'を追加してみてください。

+0

私はその可能な解決策を試してみて、同じ結果を得ました。 – user3732216

+0

また、HTML内の2つの異なる要素に同じIDを使うべきではありません。 –

+1

問題は 'old( 'is_active')== NULL'で何かをしなければならないと思います。両方のラジオ入力で同じことを確認していて、それが本当であれば両方のラジオが選択できなくなります。 –

関連する問題