【问题标题】:Pass button value to textarea value with Javascript使用 Javascript 将按钮值传递给 textarea 值
【发布时间】:2016-02-12 09:31:52
【问题描述】:

我正在尝试将附加到我的按钮的值发送到名为“your-message”的文本区域,并要求它使用 Javascript 按名称命名。但是由于某种原因,该值似乎无法正确传递到文本区域。

有人知道我的 JavaScript 哪里出错了吗?

<script type = "text/javascript">
    function request_booking(objButton) {
        var booking = objButton.value;
        alert(booking);

        var textarea = document.getElementByName('your-message');
        textarea.value(booking);
    }
</script>

<button id="3" value="Start Date: 2016-02-12 \n Finish Date:  2017 -02-12 \n Additional Requests: \n" class="request-booking" onclick="request_booking(this)">Request</button>
<button onclick="request_booking(this)" class="request" id="2" value="2 Submitted" type="submit">Request</button>
<button onclick="request_booking(this)" class="request" id="3" value="3 Submitted" type="submit">Request</button>

<textarea aria-invalid="false" aria-required="true" class="wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required" rows="10" cols="40" name="your-message"></textarea>

【问题讨论】:

  • $(textarea).val(booking); ?
  • 我试了一下,遗憾的是我尝试时没有传递任何值。我尝试用您的建议替换“textarea.value(booking);”。

标签: javascript jquery html button textarea


【解决方案1】:

你可以做一些改变

$('button').on('click',function(){
document.getElementsByName('your-message')[0].value = this.value;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="3" value="Start Date: 2016-02-12 \n Finish Date:  2017 -02-12 \n Additional Requests: \n" class="request-booking" >Request</button>


<button  class="request" id="2" value="2 Submitted" type="submit">Request</button>


<button  class="request" id="3" value="3 Submitted" type="submit">Request</button>

<textarea name="your-message"></textarea>

函数调用有问题。显示没有找到的错误。

【讨论】:

  • 这正是我所希望的,但是它使用了文本区域 id="ta" 有没有办法让它使用 ?会是 .getElementByName("your-message"); ?
  • 很高兴我能帮助你:) 快乐编码
【解决方案2】:

如果你想使用 Javascript 按名称使用元素

然后更新你的代码

 var textarea = document.getElementByName('your-message');
textarea.value(booking);  

var textarea = document.getElementsByName("your-message")[0];
textarea.value = booking;       

live demo

【讨论】:

    【解决方案3】:

    试试这个

    var textarea = document.getElementByName('your-message');
    textarea.value = booking;
    

    【讨论】:

    • 感谢您的建议 shu,我试了一下,似乎没有用。你认为这是由于我的功能还是 onclick 设置?
    【解决方案4】:

    将值分配给textarea 而不是传递,还请注意您拼错了函数getElementsByName,因为您有getElementByName,所以在您的调用中缺少s

    改变

    textarea.value(booking);  
    

     textarea.value = booking;    
    

    你甚至可以直接赋值。

    Live Demo

    document.getElementsByName('your-message')[0].value = booking;  
    

    【讨论】:

    • 我是否会使用与我尝试在我设置的函数中替换此代码时相同的函数,但遗憾的是它没有工作。很酷,我可以在一行中分配值。不知道为什么该函数会导致问题。
    • 感谢您的努力 Adil,我已将问题标记为使用 Debins 解决方案解决。不过,我感谢您的努力。
    猜你喜欢
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 2019-10-12
    相关资源
    最近更新 更多