Javascript 多搜索输入';他用‘this’表示价值
我想要实现的是在我的网站上有多个搜索表单,而不必为每个表单调用单独的Javascript 多搜索输入';他用‘this’表示价值,javascript,jquery,Javascript,Jquery,我想要实现的是在我的网站上有多个搜索表单,而不必为每个表单调用单独的选择器。我试着用这个来获取当前值,并在按下键时使用它,但每当我提交搜索时,我得到的唯一值就是[object]。我做错了什么 HTML <div class="col-md-8 col-md-offset-2"> <div class="form-horizontal"> <div class="form-group"> <div class="fa
选择器。我试着用这个
来获取当前值,并在按下键时使用它,但每当我提交搜索时,我得到的唯一值就是[object]
。我做错了什么
HTML
<div class="col-md-8 col-md-offset-2">
<div class="form-horizontal">
<div class="form-group">
<div class="fa fa-search pull-left"></div>
<div class="col-md-9">
<input autocomplete="off" class="form-control SearchInput" name="search" placeholder="Search for your products!" value="" type="text">
</div>
<div class="checkbox">
<label>
<input type="checkbox">
<span>Translate my search</span>
</label>
</div>
</div>
</div>
</div>
您的主要问题是这一行:
$('.SearchInput').bind('keydown', function(e) {
if (e.keyCode == 13) {
// ...
// here, `this` is already your input, no need to call .find()
var search = $(this).find($('input[name=\'search\']').attr('value'));
// ...
您正在使用类SearchInput
将keydown侦听器绑定到所有元素上,这些元素是您的
元素。这意味着,在事件处理程序中,此
将引用发生事件的当前
。出错的地方是调用当前的
元素(即this
),该元素搜索其中的其他
元素,而这些元素不存在
这条线应该是这样的:
var search = $(this).attr('value');
甚至更短,您可以使用
根据我的评论,下面是一个使用您的一些代码的示例:
$('.SearchInput').bind('keydown',函数(e){
如果(e.keyCode==13){
var search=$(this.val();
控制台日志(搜索);
}
})
翻译我的搜索
如果您想使用此
并且您已经绑定到输入,那么您只需执行以下操作:$(this).val()
,这将产生总计,因为我将其放在输入本身上。然而,如果我尝试使用提供的代码,我会得到异常:SyntaxError:missing;在声明之前
@delayeddod远远领先于你:PLol,是的,我刚刚看到:)哈。远远超过你们两个。爱在哪里D@NooBskie哈哈哈。别担心。这是一个玩笑,乐得和尼姆互相拍拍对方的背。我看到Nem已经解释过了,所以我的回答只是我对你的问题最初评论的演示。
var search = $(this).attr('value');
var search = $(this).val();