【问题标题】:.val() works on input but not textarea.val() 适用于输入,但不适用于 textarea
【发布时间】:2013-01-29 00:52:26
【问题描述】:

我正在尝试获取输入到 textarea 中的值,但它似乎不起作用。我用而不是再次尝试了它,它似乎工作得很好。

编辑:刚刚意识到这与 tinyMCE 有关。在没有 tinyMCE 的情况下尝试过,效果很好。知道这是为什么吗?

    $('.answers').load(url, function() {
             tinyMCE.init({ 
                theme : "advanced", 
                mode : "textareas", 
                plugins : "fullpage", 
                theme_advanced_buttons3_add : "fullpage" 
              });   

        $('#submitAnswer').on('click', function(e){
            var dataString = $("#addAnswer").val();
                    alert(dataString);
            e.preventDefault();
        });   
    })

不适用于:

        <textarea id="addAnswer" name="addAnswer"></textarea>

适用于:

        <input id="addAnswer" name="addAnswer"></input>

【问题讨论】:

  • 你试过了吗,textarea[name=addAnswer]反对$("#addAnswer").val()
  • @agassi0430 请尝试在 jsFiddle 中重现问题,因为我们无法猜测您的确切标记和可能涉及的其他 js 代码。

标签: jquery input textarea return-value


【解决方案1】:

它不再是 textarea,所以 value 属性将不起作用。

这是您获得对编辑器的引用以及从中获取文本的方式:

var text = tinyMCE.get('myeditorid').getContent();

JavaScript to find TinyMCE rich text editor value is null or not

【讨论】:

    【解决方案2】:

    试试这个:

    var dataString = $("textarea#addAnswer").val();
    

    【讨论】:

      【解决方案3】:

      试试:

      var dataString = $('#addAnswer').text();
      

      如果这不起作用,请尝试:

       var dataString = $('#addAnswer').html();
      

      【讨论】:

        【解决方案4】:

        .val() 属性适用于 textArea。

        例如,您可以查看documentation 和此jsFiddle

        我认为您的问题与事件的时间安排有关(准备和加载)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-04-01
          • 2017-08-07
          • 2011-04-13
          • 2014-02-19
          • 1970-01-01
          • 2015-12-02
          • 2019-11-15
          • 1970-01-01
          相关资源
          最近更新 更多