不一致的text() val()选择和填充输入
jQuery Inconsistent text() val() selection and populating input
$name
和$id
仅在一小部分时间内被正确复制。期望选择填充输入#user_search
,但选择出现未定义。文本被正确地复制,看起来像是随机的…
<input type="text" name="user" id="user_search" autocomplete="off"
class="user_live form-control" data-parsley-required="true" value="" />
<div id="user_result"></div>
添加到DOM
<div id="user_result" style="display: block;">
<div class="showResult row">
<div class="box-body">
<a class="user_id" id="353">
<div class="col-lg-3 col-md-3 col-xs-3">
<img height="50px" src="/assets/user_1.jpg">
</div>
<div class="col-lg-9 col-md-9 col-xs-9">
<span class="name">First Last</span>
</div>
</a>
</div>
</div>
<div class="showResult row">
<div class="box-body">
<a class="user_id" id="200">
<div class="col-lg-3 col-md-3 col-xs-3">
<img height="50px" src="/assets/user_2.jpg">
</div>
<div class="col-lg-9 col-md-9 col-xs-9">
<span class="name">First Last</span>
</div>
</a>
</div>
</div>
</div>
JS
$('#user_result').on('click',function(e){
var $clicked = $(e.target);
var $name = $clicked.find('.name').text(); //removed .html($name)
alert($name);
$('#user_search').val($name);
});
问题在于e.target
和.find()
不能完全正确地使用该布局。试试这个:
$('#user_result').on('click',function(e){
var $name = $(e.target).closest('.showResult').find('.name').text();
alert($name);
$('#user_search').val($name);
});
https://jsfiddle.net/feab9ms0/当click事件被触发时,实际的目标是img
标签,而不是div
本身。因为类.name
的元素不包含在img
中,所以您不会得到任何匹配结果。因此,您需要使用.closest
导航到包含img
标记的最小父标记。
$("#user_result").on("click",function(e){
var $clicked = $(e.target);
var $name = $clicked.closest(".box-body").find('.name').text();
alert($name);
$('#user_search').val($name);
});
在赋值html($name).text()
之前没有初始化$name
,
相关文章:
- 从确认框中预填充输入文本框
- 点击填充输入的按钮&提交
- 如何自动填充输入文本框值以与名称相同
- 使用 JSON 数组填充输入字段
- 使用 Jquery 在 SharePoint 2007 上自动填充输入文本
- 如何使用Javascript填充输入文本字段
- IE JavaScript参数和填充输入字段
- 使用其他输入值自动填充输入
- 在表单提交中填充输入字段
- AngularJS-用下拉菜单填充输入文本字段
- 如何使用选中的复选框文本自动填充输入文本字段
- 如果选择'其他'然后填充输入字段
- casperjs根据他的xpath填充输入
- Shiny中未读取的自动填充输入
- Javascript复选框填充输入并将不同的值传递给表单
- 壁虎浏览器不会在加载时填充输入
- 用网址图像填充输入
- 单击用文本填充输入框
- 如何使用 Javascript 动态加载 iFrame 源代码和自动填充输入表单
- 如何用数据库中的值填充输入文本字段 单击复选框