Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多搜索输入';他用‘this’表示价值_Javascript_Jquery - Fatal编程技术网

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