簡體   English   中英

提交前檢查是否選中了所有動態單選按鈕

[英]Check if all dynamic radio buttons are checked before submit

我不確定在提交表單之前如何檢查來自DB的所有動態單選按鈕。 我正在一個預訂項目上,線索是關於食品包裝和分包裝的。 根據客戶選擇的套餐,客戶將像單選按鈕一樣在提交並進入預訂視圖之前檢查想要的菜式。 如果未選擇所有產品(每個類別1個),則無法提交表單。我的觀點:

 {!! Form::open(array('route' => ['continue_pacakage_booking',$sub_package->id],'id' => 'form','class'=>'form-horizontal','novalidate' => 'novalidate','role' => 'form', 'enctype' => 'multipart/form-data', 'onsubmit' => "validateForm()")) !!}
@foreach($dishes_and_categories as $key=>$dishes_and_category)
    <section style="padding: 70px 50px">
        <div class="container"style="border-bottom: 10px solid #F0F0F0" >
            <div class="row">
                <!-- section title -->
                <div class="col-md-12 text-center">
                    <span class="title-small text-uppercase letter-spacing-3 font-weight-600" style=" color: #da7e57;">{{$dishes_and_category['category_name']}}</span>
                    <div class="separator-line-thick bg-black no-margin-bottom margin-one xs-margin-top-five"></div>
                </div>
                <!-- end section title -->
            </div>
            <section class="wow fadeIn blog-details-text" style="padding-top: 30px;padding-bottom: 30px">
                <div class="container">
                    @foreach($dishes_and_category['dishes'] as $dish)
                        <div class="col-md-4 col-sm-6">
                            <label>
                                <input type="radio" @if($dishes_and_category['id_category'] == 6) disabled @endif name="{{$dishes_and_category['id_category']}}" value="{{$dish->id}}" />
                                <img src="http://develop.almotech.org/restaurant/restaurant_panel/public/attachment/dishes/{{$dish->image}}" style="border-radius: 50%;height: 250px;width: 100%">
                                <p style="text-align: center; font-weight: bold" class="text-uppercase">{{$dish->name}}</p>
                            </label>
                        </div>
                    @endforeach
                </div>
            </section>
        </div>
    </section>
@endforeach
<div class="col-md-12">
<button class="highlight-button btn btn-large btn-round button xs-margin-bottom-five" type="submit"  id="select_table" name="select_table" style="margin-left: 805px; width: 278px; margin-bottom: 20px">Continua Prenotare</button>

</div>
{!! Form::close() !!}

和我的控制器:

public function show($id)
{

    $sub_package = Sub_Packages::find($id);
    $id_package = $sub_package->id_package;

    $selected_categories = DB::select('SELECT c.id as id_category , c.name as category_name FROM sub_packages_dishes s LEFT JOIN packages_menu_categories c ON s.id_package_menu_category = c.id WHERE s.id_sub_package = '.$id.' GROUP BY s.id_package_menu_category');
    $dishes_and_categories  = array();

    foreach ($selected_categories as $selected_category)
    {
        $dishes =  DB::select('SELECT s.id AS id_pmcd , d.id , d.name ,d.image FROM `sub_packages_dishes` s LEFT JOIN `dishes` d ON s.id_dish = d.id WHERE s.id_sub_package ='.$id.' AND s.id_package_menu_category ='.$selected_category->id_category);
        $object=
            [
                'id_category' => $selected_category->id_category,
                'category_name' =>$selected_category->category_name,
                'dishes' => $dishes
            ];
        array_push($dishes_and_categories,$object);
    }
    return view('package.view_sub_package',['id_package' =>$id_package ,'sub_package' =>$sub_package,'dishes_and_categories' =>$dishes_and_categories]);

}

您可以使用jQuery函數的組合(不是-http://api.jquery.com/not/ ,有-http://api.jquery.com/has/ )來幫助您。

if ($('#testForm:not(:has(:radio:checked))').length) {
    alert('Not all checked');
}

這是我創建的示例http://codepen.io/ltong/pen/dOLmoa

您需要更改按鈕表單的名稱。

name="{{$dishes_and_category['id_category']}}

name="buttons[{{$dishes_and_category['id_category']}}]"

然后,您可以在

In the controller request->input('buttons');

或JavaScript中的foreach

var radios = document.getElementsByName( buttons);
    for( i = 0; i < radios.length; i++ ) {
        if( radios[i].checked ) {
            do somthing
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM