我有以下 HTML
<li class='user_attributes'><b>username: </b>{{username}}
<input class='user_input form-control edit_fields {{_id}}' id='username_field' type="text" name='username' placeholder="username">
<button type="submit" class="btn btn-default submit_button edit_fields {{_id}}" id='update_username'>update</button>
</li>
我想在 <li>
时获取输入字段的值的提交按钮被点击(不是其他同名输入字段的值)。
我有以下 jQuery,但它们都返回未定义的:
'click #update_username': function(ev, template){
ev.preventDefault();
// var username_field = template.$('input[id="username_field"]').val();
// var username_field = $(ev.target).find('[name = message]').val();
var input_field = $(this).siblings($('input[id="username_field"]')).val();
console.log(input_field);
// Meteor.call('updateUsername', this._id, username_field);
}
编辑
这是我使用的框架 (Meteor.js) 和“this”范围的问题
最佳答案
试试看
https://jsfiddle.net/zy7qy3v5/3/
$('button').click(function(){
var value = $(this).siblings('input').val();
alert(value);
})
不要在 siblings 函数中放置不必要的 jquery 对象。您的选择器返回所有 sibling 。
$('button').siblings('input') //Returns 1 element
不一样
$(this).siblings($('input[id="username_field"]')) //Returns 2 element
关于javascript - 获取同级文本输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29955085/