2014-01-09 120 views
1
<script type="text/javascript"> 

$(document).ready(function() { 
    $(".buttons").click(function(){ 
     var cntrl = $(this).html(); 
     $("#txt-area").text(cntrl+","); 

     //alert (cntrl); 
    }); 
}); 

</script> 

當我在我的html頁面上點擊我的字符時,字符的值設置爲textarea,但是當我點擊另一個字符時,以前的char消失。我知道關於JS中的數組,但我該如何處理這個問題。當點擊一個按鈕時,將值添加到textarea

如何正確添加值到textarea而不消失?

enter image description here

回答

4

嘗試

$(document).ready(function() { 
    $(".buttons").click(function() { 
     var cntrl = $(this).html(); 
     $("#txt-area").val(function (_, val) { 
      return val + cntrl + "," 
     }); 

     //alert (cntrl); 
    }); 
}); 

演示:Fiddle

$("#txt-area").text($("#txt-area").val() + cntrl+","); 
$("#txt-area").append(cntrl + ","); 

演示:Fiddle - 我更喜歡使用VAL(),因爲我認爲這是一個輸入元素

+1

好,感謝了很多,但我想了解VAL(函數(_,VAL)你能解釋一下這部分 – hakiko

+0

@hakiko [.VAL()](HTTP://api.jquery。 com/val /)將一個函數作爲參數,其返回值將被設置爲當前元素的值,函數將獲得2個參數作爲當前元素的索引和元素的當前值,因此我們只需將將按鈕設置爲當前值並將其返回,以便將連接值設置爲新值 –

+0

嗯除了「_」參數,我可以清楚地理解它嗎? – hakiko

0

嘗試,

$(document).ready(function() { 
    $(".buttons").click(function(){ 
      var cntrl = $(this).html(); 
      var xTxtArea = $("#txt-area"); 
      xTxtArea.text(xTxtArea.text() + cntrl + ","); 
    }); 
}); 
0

阿倫的回答上述作品,但它會逗號添加到末尾。如果您想避免這種情況,請將逗號放在新值之前,然後讓代碼檢查以確定這是否是第一次添加內容,而不是放置逗號。 ?

$(document).ready(function() { 
    var oldvalue; 
    var newvalue; 
    $(".buttons").click(function() { 
     oldvalue = $("#txt-area").val(); //GET THE VALUE OF TEXTBOX WHEN USER CLICKS 
     if (oldvalue) {newvalue = ', '+$(this).html();} // IF THE TEXTBOX ISN'T BLANK, PLACE A COMMA BEFORE THE NEW VALUE 
     else {newvalue = $(this).html();} //IF THE TEXTBOX IS BLANK, DON'T ADD A COMMA 
     $("#txt-area").val(oldvalue + newvalue); //PLACE THE ORIGINAL AND NEW VALUES INTO THE TEXTBOX. 
    }); 
}); 
相關問題