2016-10-11 49 views
1

我有一個代碼,像這樣:的Javascript複選框增值textarea的

var fails = 'fail'; 
 
var sucs = 'success'; 
 

 
function showResult(state){ 
 
\t if(state){ 
 
     document.getElementById("hasil").value=sucs; 
 
    }else{ 
 
     document.getElementById("hasil").value=fails; 
 
    } \t \t \t \t \t \t \t \t \t 
 
}
<form> 
 
    <table border='1'> 
 
    <tr> 
 
     <th>TARGET</th> 
 
     <th>RESULT</th> 
 
     <th>NOTES</th> 
 
    </tr> 
 
    <tr> 
 
     <td><input type='checkbox' name='target' onclick='showResult(this.checked);' /></td> 
 
     <td><textarea name='result[]' id='hasil'>fail</textarea></td>  <td><textarea name='notes[]' class='form-control'></textarea></td> 
 
    </tr> 
 
    <tr> 
 
     <td><input type='checkbox' name='target' onclick='showResult(this.checked);' /></td> 
 
     <td><textarea name='result[]' id='hasil'>fail</textarea></td>  <td><textarea name='notes[]' class='form-control'></textarea></td> 
 
    </tr> 
 
    <tr> 
 
     <td><input type='checkbox' name='target' onclick='showResult(this.checked);' /></td> 
 
     <td><textarea name='result[]' id='hasil'>fail</textarea></td>  <td><textarea name='notes[]' class='form-control'></textarea></td> 
 
    </tr> 
 
</form>

我希望創建一個複選框,如果它被點擊,它會在該行改變文本區域到success。如果我取消選中,它將變回fail。誰能幫我?

+0

getElementsByClassName方法是沒有名字,getElementsByClassName方法返回一個集合.... – epascarello

+0

我嘗試用ID來改變它,但它僅適用於第一行... –

+1

由於IDS是單數。希望有人能告訴你如何獲得複選框的引用。選擇父tr,找到文本區域並設置值。我無法在手機上編碼。 – epascarello

回答

1

它只適用於第一行。

@epascarello說,因爲ids是單數。所以您需要選擇父tr,找到文本區域並設置值。

你可以這樣做。

$('[type=checkbox]').change(function() { 
 

 
    if ($(this).is(":checked")) { 
 
    var $row = $(this).parents('tr'); 
 
    $row.find('textarea[name="result[]"]').text("sucess"); 
 
    } else { 
 
    var $row = $(this).parents('tr'); 
 
    $row.find('textarea[name="result[]"]').text("fail"); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form> 
 
    <table border='1'> 
 
    <tr> 
 
     <th>TARGET</th> 
 
     <th>RESULT</th> 
 
     <th>NOTES</th> 
 
    </tr> 
 
    <tr> 
 
     <td> 
 
     <input type='checkbox' name='target' /> 
 
     </td> 
 
     <td> 
 
     <textarea name='result[]' id='hasil'>fail</textarea> 
 
     </td> 
 
     <td> 
 
     <textarea name='notes[]' class='form-control'></textarea> 
 
     </td> 
 
    </tr> 
 
    <tr> 
 
     <td> 
 
     <input type='checkbox' name='target' /> 
 
     </td> 
 
     <td> 
 
     <textarea name='result[]' id='hasil'>fail</textarea> 
 
     </td> 
 
     <td> 
 
     <textarea name='notes[]' class='form-control'></textarea> 
 
     </td> 
 
    </tr> 
 
    <tr> 
 
     <td> 
 
     <input type='checkbox' name='target' /> 
 
     </td> 
 
     <td> 
 
     <textarea name='result[]' id='hasil'>fail</textarea> 
 
     </td> 
 
     <td> 
 
     <textarea name='notes[]' class='form-control'></textarea> 
 
     </td> 
 
    </tr> 
 
</form>

+0

你好,它工作順利的片段,但不是在我的代碼。是否需要放在頭部或身體上?或者這不重要? –

+0

你能告訴我你正在使用哪種技術?而且現在被認爲是HTML,所以你可以把它放在標題標籤中。在'$(document).ready(function(){yourcode});' –

+1

我很抱歉...我錯過了功能後的括號....它現在完美的工作..非常感謝你! –