2017-05-09 55 views
0

在這裏,我能夠清除數據,但是當我從其他單選按鈕的值,再次加載其先前的數據,我不想要的數據。清除單選按鈕上的文本區域單擊並獲取文本,而不是值jquery

我希望textarea數據應該在單選按鈕上單擊時永久清除,不應該加載任何其他文件。

這裏是我的代碼

<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); 
     } 
    }); 
} 

控制器方法獲取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; 
    } 

腳本在T推數據轉區

<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> 

textarea的地方我將值

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

請幫助我怎麼能硬復位textarea的價值。

+0

我沒有看到任何textarea的代碼 – madalinivascu

+0

對不起,我現在 –

+0

你怎麼推值到textarea的更新呢? – 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到textarea的,那麼你需要改變你的HTML如下

與學生姓名

$data .= "<input type='checkbox' class='chkbx' name='custom' data-name=' {$student->name}' value='{$student->name}'/> {$student->name} 
           <span></span>"; 
添加自定義屬性,叫做數據名稱

和JS地圖返回:

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

親愛的它的價值工作,但我不想推價值,我需要推文本將來自{$學生 - >名稱} .... 如何做文本,而不是返回這個。值; .... 謝謝,請更新回答 –

+0

沒有親愛的,這不是問題,它是......'$數據。=「 {$ student-> name} 」;'.....在這段代碼中,我們返回學生的價值意味着id'{$ student-> id}',但是我想在代碼行'{$ student-> name}'的末尾添加上面的名字...... –

+0

可能會返回this.text ;但它不起作用 –

0

在循環語句開始之前,將您的學生數據變量初始化爲0或null。 要顯示的所有變量都應該初始化爲0或NULL,以便每次調用函數時首先將值設置爲null,然後循環存儲其值。

相關問題