【问题标题】:Get the value of an <input type="text"> that was created dynamically inside a modal获取在模态中动态创建的 <input type="text"> 的值
【发布时间】:2015-12-28 15:45:44
【问题描述】:

我想获取在模态中动态创建的&lt;input type="text"&gt; 的值并将其放入变量“newcomment”中。 这就是我输入的方式:

    var newcomment;
    var p = $("<p>");
    p.append("Some text");
    p.append("</p>");
    p.append("<input type='text'id='comment_text' value='Comment'"+"onblur=newcomment=$('#comment_text').val()"+" onfocus=if(this.value==this.defaultValue)this.value=''>"+"</input>");
    $("div.modal-body").append(p);

问题是当我在模态文本框内写“ok”之类的内容时,并且在我从文本框中聚焦之后:newcomment 似乎没有更新为“ok”并且仍然具有默认的“Comment”值。

【问题讨论】:

  • 忽略最后一条评论,你的代码有点草率。您应该将逻辑放入 JS 文件中的函数中,然后在 onfocus/onblur 中运行该函数。
  • 可以提供jsfiddle吗?
  • @SoluableNonagon 我不确定我理解你的意思。
  • 意味着他刚刚对你的问题投了反对票
  • @Mi-Creativity 我指的是“您应该将逻辑放入 JS 文件中的函数中,然后在 onfocus/onblur 中运行该函数”

标签: javascript jquery text input


【解决方案1】:

第一个:你需要使用newcomment=this.value而不是newcomment=$('#comment_text').val() 第 2 次:无需在输入的 html 代码中添加 + 符号,而无需尝试通过向其添加变量来连接字符串

var newcomment;
    var p = $("<p>");
    p.append("Some text");
    p.append("</p>");
    p.append("<input type='text' id='comment_text'  value='Comment' onblur='newcomment=this.value; alert(newcomment);' onfocus=if(this.value==this.defaultValue)this.value='' />");
    $("body").append(p);
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

【讨论】:

    【解决方案2】:

    这里不是真正的答案,但可能会帮助您找到问题的根源。

    JS:

    var newComment, defaultValue;
    
    function doOnBlur(){
        newComment = $('#comment_text').val()
    }
    
    function doOnFocus(){
        if($('#comment_text').val() == defaultValue){
            $('#comment_text').val('')
        }
    }
    

    HTML:

    <input type='text' id='comment_text' placeholder='Comment' onblur='doOnBlur()' onfocus='doOnFocus()' /> 
    <!-- inputs dont have a close tag, also should use placeholder for temporary text -->
    

    从这里,您可以在调试器中设置断点并查看您的代码哪里出错了。您还可以更轻松地修改函数,而不是在 HTML 中编写执行代码

    【讨论】:

      猜你喜欢
      • 2011-08-05
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多