我想获得在模态中动态创建的<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;值。
答案 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中编写执行代码