获取在模态内动态创建的<input type =“text”/>的值

时间:2015-12-28 15:45:44

标签: javascript jquery text input

我想获得在模态中动态创建的<input type="text">的值,并将其放入变量&#34; newcomment&#34;。 这就是我输入的方式:

    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);

问题是当我写出类似&#34; ok&#34;在模态中的文本框内,以及从文本框中聚焦后:newcomment似乎没有更新为&#34; ok&#34;并且仍然有默认&#34;评论&#34;值。

2 个答案:

答案 0 :(得分:1)

第一名:您需要使用newcomment=this.value代替newcomment=$('#comment_text').val() 第二名:在您不尝试通过将变量添加到字符串来连接字符串时,无需在输入的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);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:0)

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

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中编写执行代码