设置附加到文本区域的字符串的顺序

Setting order of strings appended to a textarea

本文关键字:字符串 顺序 区域 文本 设置      更新时间:2024-03-23

我正在将select输入元素中的值添加到文本区域。然后,我如何添加条件,以便如果选择了某个选项值,它总是添加在所有其他选项值的末尾?

HTML

<p>
    <select name="selectfield" id="selectfield">
        <option value="" selected>- Select -</option>
        <option value="HTML/">HTML/</option>
        <option value="CSS/">CSS/</option>
        <option value="JQUERY/">JQUERY/</option>
    </select>
</p>
<textarea style="width:100%" name="info" id="info" cols="20" rows="5"></textarea>

jQuery

$("#selectfield").on("change", function() {
    var $select = $(this);
    $("#info").val(function(i, val) {
        return val += $select.val();
    })
});

在本例中,我希望"HTML/"始终位于文本区域的末尾,无论何时选择它。

FIDDLE

当您设置文本区域的值时,比较select的值。如果它是您想在末尾添加的字符串,则将其添加到值的末尾,否则将其添加在开头。

if($select.val()==="HTML/")
    return val = val + $select.val();
else
    return val = $select.val() + val;

https://jsfiddle.net/qshcr01a/

上面更聪明,但这也有效:

$("#selectfield").on("change", function() {
    var $select = $(this);
    $("#info").val(function(i, val) {
    if (val=="HTML/"){
        return $select.val()+"HTML/";
      }else{
       if(val=="JQUERY/HTML/"){
        return "CSS/JQUERY/HTML/";
        }else if (val=="CSS/HTML/"){
        return "JQUERY/CSS/HTML/";
        }else{
         return val+= $select.val()
        }
      }
    })
});