Javascript 如何将已存在于输入字段中的字符串添加到末尾?

Javascript 如何将已存在于输入字段中的字符串添加到末尾?,javascript,jquery,Javascript,Jquery,现在,如果我按下按钮,它将清除输入字段中的所有内容,并自动向其输入“@mary”。 但是,我不希望它被清除:( 如果我想在输入字段中已经存在的字符串末尾添加“@mary”,该怎么办 如何自定义我的javascript部分 输入字段 <textarea class="box text_area" cols="10" id="input" name="comment[body]"></textarea> val() $(".box#input").val(function(

现在,如果我按下按钮,它将清除输入字段中的所有内容,并自动向其输入“@mary”。
但是,我不希望它被清除:(

如果我想在输入字段中已经存在的字符串末尾添加“@mary”,该怎么办

如何自定义我的javascript部分

输入字段

<textarea class="box text_area" cols="10" id="input" name="comment[body]"></textarea>
val()

$(".box#input").val(function(_, val) {
    return this.value + 'some extra string';
});

val()

$(".box#input").val(function(_, val) {
    return this.value + 'some extra string';
});

首先,他的答案很好,您应该阅读它。这里有一个不使用jQuery的替代解决方案:

我假设这两个元素都是表单的一部分。例如,表单的ID为
“post”
。我们可以使用
document.forms
访问它,然后访问它的字段:

 var input = document.forms.post["comment[body]"];
现在,我们可以在单击按钮时添加其值。首先使用getElementById或querySelector选择
username
,然后添加事件:

username.addEventListener("click", function(ev){
     input.value += ev.target.value;
});
或者使用jQuery(如果元素还不在DOM中,这也会委托):

可能需要在当前文本和用户名之间添加一个额外的空格。

首先,您的答案很好,您应该阅读它。下面是一个不使用jQuery的替代解决方案:

我假设这两个元素都是表单的一部分。例如,表单的ID为
“post”
。我们可以使用
document.forms
访问它,然后访问它的字段:

 var input = document.forms.post["comment[body]"];
现在,我们可以在单击按钮时添加其值。首先使用getElementById或querySelector选择
username
,然后添加事件:

username.addEventListener("click", function(ev){
     input.value += ev.target.value;
});
或者使用jQuery(如果元素还不在DOM中,这也会委托):


可能需要在当前文本和用户名之间附加一个额外的空格。

在文本区域的末尾附加@mary。您可以使用下面的代码来完成它的工作

$(document).on('click', 'a#username', function () {
    var txtvalue = $(".box#input").val();
    $(".box#input").val(txtvalue + $(this).attr('value'));
});

请参见文本区末尾的JSFIDLE链接append@MARY。您可以使用下面的代码来完成它的工作

$(document).on('click', 'a#username', function () {
    var txtvalue = $(".box#input").val();
    $(".box#input").val(txtvalue + $(this).attr('value'));
});

请参阅JSFIDLE link

谢谢您的帮助!您不能一行完成吗?类似于“$”(.box#input”).val($(this)+$(.box#input”).val($(this.attr('value'));“我说的是类似这类的东西
result=result+“这里有一些字符串”
@MKK如果你使用普通JavaScript而不是jQuery,你可以这样做。@MKK-当然可以,
this.value=this.value+'something'
,但在你的例子中,你没有告诉我们这是什么?如果你认为它是元素,除非你使用回调,或者它在rigth范围内,等等。@adeneo我确实更新过d我的问题。这有助于你理解我想问的问题吗?谢谢你的帮助!你不能一行完成吗?类似于“$”(“.box#input”).val($(this)+$(.box#input”).val($(this).attr('value');“我说的是类似这类的东西
result=result+“这里有一些字符串”
@MKK如果你使用普通JavaScript而不是jQuery,你可以这样做。@MKK-当然可以,
this.value=this.value+'something'
,但在你的例子中,你没有告诉我们这是什么?如果你认为它是元素,除非你使用回调,或者它在rigth范围内,等等。@adeneo我确实更新过d我的问题。这有助于你理解我想问的问题吗?谢谢你的帮助:)我正在做这个
var-input=$(“.box#input”)
和'input.value+=this.value;'但是它清除了所有的输入
@mary
:(为什么它不会添加…你需要做
input=$(…)。获取(0)
要获取dom元素,如果您不想使用querySelector,您需要从jQuery选择集中提取dom元素。感谢您的帮助:)我正在这样做
var input=$(“.box#input”);
和'input.value+=this.value;'但它会清除所有输入和输入
@mary
:(为什么它不会添加…您需要执行
input=$(…).get(0)
要获取dom元素,如果不想使用querySelector,则需要从jQuery选择集中提取dom元素。