jQuery div或使用输入字段名称

时间:2015-11-04 14:27:12

标签: javascript php jquery html

我对下面的输入框有疑问。我正在使用jQuery捕获 输入字段。你需要有一个包围的div,还是可以使用html表单标签中的name属性?

<input type="text" name="name" size="30">

var MIN_LENGTH = 3;
$(document).ready(function() {
        $("#keyword").keyup(function() {
                var keyword = $("#keyword").val();
                if (keyword.length >= MIN_LENGTH) {
                    $.get( "auto-complete.php", { keyword: keyword } )
                        .done(function( data ) {
                                console.log(data);
                            });
                }
            });

    });

正确的做法是什么?

4 个答案:

答案 0 :(得分:2)

您问的是如何按名称选择元素而不是ID?使用attribute selector

$('[name="name"]').keyup(function() {
    var keyword = $(this).val();
});

答案 1 :(得分:2)

要使用JQuery选择DOM中的元素,您可以使用ID,CSS类或元素的任何属性。因此,如果您不想为该元素添加ID,可以通过name属性选择它。

var $nameElement = $("[name='name']");

你可以这样做:

var MIN_LENGTH = 3;

$(document).ready(function() {
  'use strict';

  var autocompleteKeywords = function autocompleteKeywords() {
    var keyword = $(this).val();
    if (keyword.length < MIN_LENGTH) return;
    console.log("Searching Keyword: " + keyword); 
    $.get('auto-complete.php', {
      keyword: keyword
    }).done(function(data) {
      console.log(data);
    });
  };

  var setupKeywordField = function setupKeywordField() {
    $('#keyword').on('keyup', autocompleteKeywords);
  };

  setupKeywordField();
});

就像在这个JSFiddle中一样:https://jsfiddle.net/ndpd32x5/

答案 2 :(得分:0)

你可以这样做:

 $("input[name='name']").keyup(function() {
    var keyword = $(this).val();
    // more implementation
 });

答案 3 :(得分:0)

不,不。使用jquery,您应该通过其id(在向输入添加和id属性之后)

来定位输入
<input type="text" id="name" name="name" size="30">

然后得到它的价值:

var value = $("#name").val()