2015-11-04 61 views
1

我有一個關於下面的輸入框的問題。我使用jQuery來捕獲輸入字段 。你需要做一個包圍的div嗎?或者你可以使用html表單標籤中的name屬性嗎?jQuery div或使用輸入字段名稱

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

    }); 

什麼做的正確方法嗎?

+0

所以使用屬性選擇器。 https://api.jquery.com/attribute-equals-selector/ – epascarello

+0

爲您的輸入添加一個id屬性,如下所示:'id =「keyword」'因爲您在jquery中選擇了'#keyword' –

回答

2

你在問如何按名稱選擇元素而不是ID?使用attribute selector

$('[name="name"]').keyup(function() { 
    var keyword = $(this).val(); 
}); 
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/

0

你可以這樣做:

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

不,你不會。使用jQuery就應該將其ID輸入(後添加和id屬性來輸入)

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

然後得到它的淡水河谷,如:

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