2017-05-09 8 views
0

ここで私はデータをクリアすることができますが、他のラジオボタンから値をプッシュすると、前回のデータは必要ありません。ラジオボタンでクリアテキスト領域をクリックして値の代わりにテキストを取得jquery

私は、テキストボックスのデータをラジオボタンのクリックで完全にクリアする必要があります。他のものと一緒に読み込まないでください。ここで

は私のコードは、トンでデータをプッシュするHTML

public function loadData($id) 
{ 
    $students = DB::table('students')->select('name' , 'id')->where('user_id' , $id)->get(); 
    $data = ''; 
    $data .= '<div class="form-group"> 
         <label class="control-label col-md-1"> 
         </label> 
         <div class="col-md-8"> 
          <label class="">'; 
          foreach ($students as $student) { 
           $data .= "<input type='checkbox' class='chkbx' name='custom' onclick='push()' value='{$student->name}'/> {$student->name} 
           <span></span>"; 
           } 
       $data .='</label> 
         </div> 
        </div>'; 
       return $data; 
    } 

スクリプトを取得する

<div class="portlet-body"> 
@foreach($students as $student) 
    <div> 
     <input type="radio" value="{{$student->id}}" name="student_lists[]" onclick="getdata({{ $student->id }})"/> 
     {{$lists->name}} 
     <span></span> 
    </div> 
    <div id="students-data"></div> 
@endforeach 
</div> 

スクリプト

<script> 
function getdata(id) 
{ 
    $('#textbx').val(null); 
    $.ajax({ 
     url: '/students/'+id, 
     type: "POST", 
     success: function (data) { 
     $('#students-data').html(data); 
     } 
    }); 
} 

コントローラメソッドであります私は値

<textarea name="fields" id="textbx" class="form-control" rows="8" ></textarea> 

どのようにすることができます私はハードリセットテキストエリアの値を助けてくださいを押して内線エリア

<script> 
    function push() 
    { 
    $checks = $(".chkbx:checkbox"); 
    $checks.on('change', function() { 
     var data = $checks.filter(":checked").map(function(i,v){ 
      return this.value; 
     }).get().join("\n"); 

     $('#textbx').val(data); 
    }); 
    } 
</script> 

テキストエリア。

+0

私はあなたのコード内の任意のテキストエリアが表示されない – madalinivascu

+0

申し訳ありませんが私は今 –

+0

がどのようにそのテキストエリアに値をプッシュしない、それを更新しますか? – madalinivascu

答えて

1

、プッシュ機能を削除する変更イベントを維持し、あなたが動的に追加された要素のコードをトリガーすることができますので、それを委任し、あなたはスチューデントを持っている場合は、あなたのクリックcheckobx

$(function(){ 
     $('body').on('change',".chkbx:checkbox", function() { 
      var data = $(this).parent().find(':checkbox:checked').map(function(i,v){ 
       return $(v).val(); 
      }).get().join("\n"); 

      $('#textbx').val(data); 
     }); 
    }); 

に対するチェックボックスを選択> ID値としておよびテキストエリアにapppendedするスチューデント>名を欲しい

生徒の名前

$data .= "<input type='checkbox' class='chkbx' name='custom' data-name=' {$student->name}' value='{$student->name}'/> {$student->name} 
           <span></span>"; 
とデータ名と呼ばれるカスタム属性を追加し、以下のように、あなたはあなたのhtmlを変更する必要があります

とjsのマップが返される:

return $(v).attr('data-id'); 
+0

親愛なる価値ありですが、プッシュ値を必要としません。{$ student-> name}から来るテキストをプッシュする必要があります.... これを返す代わりにテキストを処理する方法。値; .... お返事ありがとうございます。 –

+0

これは疑問ではありませんでした... '$ data。= " {$ student-> name} "; '.....このコードでは、私たちは学生値mean id '{$ student-> id}'を返しますが、コードライン '{$ student-> name}'の最後に上記の名前が必要です... –

+0

return this.text ;しかし、それは動作していません –

0

最初のループステートメントは、生徒データ変数を0またはnullに初期化します。 表示する変数はすべて0またはNULLに初期化する必要があります。そのため、関数が最初に呼び出されるたびに値がNULLに設定され、にはループがその値を格納します。

関連する問題