laravel
  • laravel-5
  • laravel-5.2
  • 2016-09-29 91 views 3 likes 
    3

    我想驗證我的動態無線電輸入。我有這個在我看來 view.blade.php:驗證動態單選按鈕Laravel 5

    echo "<span class='error'>".$errors->first('sar')."</span><td></tr>"; 
    
    for($i=1; $i<11; $i++){ 
    echo"<td>"; ?> 
    <input class='radio-inline' name='sar[<?php echo $number; ?>]' type='radio' value='<?php echo $i; ?>' ><?php echo "</td>";} 
    

    控制器:

    //valida pontas -- 
    $this->validate($request, [ 
        'sar' => 'required' 
    ]); 
    

    我曾嘗試:內部視圖$vf = 'sar['.$fcid.']'; $errors->first($vf)和我的控制器中:'sar[$i]' => 'required'

    所以for循環動態創建單選按鈕名稱,如'sar [1]'在我驗證我不知道我將如何驗證每個動態創建的無線電輸入...任何想法如何處理這將不勝感激..

    回答

    2

    使與

    //valida pontas -- 
    $this->validate($request, [ 
        'sar.*' => 'required' 
    ]); 
    

    這是Laravel 5.2或更大的一個

    +0

    這是不行的,:( – OzmaTis

    +0

    它提交表單,並繞過驗證, – OzmaTis

    +0

    你在做形式後使用Ajax或沒有Ajax –

    0

    提交Ronak的有效性規則的變更是正確的:

    $this->validate($request, [ 
        'sar.*' => 'required' 
    ]); 
    

    但是,如果你不選擇單選按鈕,輸入根本不發送,所以它不能被驗證。避開這個問題的一種方法是在收音機輸入之前放置一個隱藏的輸入,其名稱和空值都是相同的。所以,你的HTML變爲:

    echo "<span class='error'>".$errors->first('sar')."</span><td></tr>"; 
    for($i=1; $i<11; $i++){ 
        echo"<td>"; ?> 
        <input type="hidden" name='sar[<?php echo $number; ?>]' value=''> 
        <input class='radio-inline' name='sar[<?php echo $number; ?>]' type='radio' value='<?php echo $i; ?>' ><?php  
        echo "</td>"; 
    } 
    
    相關問題