2015-11-04 2 views
1

У меня есть вопрос относительно ввода ниже. Я использую jQuery для ввода поля ввода . Вам нужно иметь окруженный div или вы можете использовать атрибут name из тега формы html?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 "', поскольку вы выбираете '# keyword' в jquery –

ответ

2

Вы спрашиваете, как выбрать элемент по имени, а не id? Используйте attribute selector.

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

Для выбора элементов в DOM с помощью JQuery вы можете использовать ID, CSS-класс или любой атрибут элемента. Поэтому, если вы не хотите добавлять идентификатор для этого элемента, вы можете выбрать его по атрибуту 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 вы должны быть направлены на вход по его идентификатору (после добавления и атрибута идентификатор входа)

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

затем получить его юдоль как:

var value = $("#name").val() 
Смежные вопросы