Заполните форму с помощью jQuery - PullRequest
14 голосов
/ 18 января 2012

Я пытаюсь использовать jQuery для заполнения формы с некоторыми значениями по умолчанию.

Форма содержится в элементе div, который имеет идентификатор.На самом деле каждый элемент имеет идентификатор, я сделал это только для того, чтобы иметь возможность быстро выбирать каждый фрагмент формы с использованием синтаксиса $("#id").
Вот форма:

<div id="panel" style="position: absolute; left: 190px; top: 300px; width: 400px; height: 300px; border: medium groove brown; background: none repeat scroll 0% 0% black; z-index: 100; color: white;"><form id="form_coord_0">  
X <input type="text" style="height: 25px; font-size: 10px;" size="2" name="X" id="coordX_0"/>  
Y <input type="text" style="height: 25px; font-size: 10px;" size="2" name="Y" id="coordY_0"/>  
<input type="button" id="edit_0" value="M"/>  
<input type="button" id="remove_0" value="-"/>  
<input type="button" id="add_0" value="+"/>  
<input type="button" id="go_0" value="go!"/>  
<br/>  
</div>  

Мне нужно установитьтекстовое поле coordX_0 с некоторым значением, скажем: 123.

Я думал, что смогу сделать

$("#coordX_0").text.value = 123;  

Но, похоже, это не работает.Любой намек?

Ответы [ 9 ]

23 голосов
/ 18 января 2012

Вы можете использовать функцию val () для установки входных значений.

$("#coordX_0").val(123);  

Между прочим, ваш исходный код можно заставить работать, установив свойство value в фактическом, базовом домене.элемент.Вы получаете доступ к элементу dom, индексируя свои результаты jQuery:

$("#coordX_0")[0].value = 123;  
15 голосов
/ 18 января 2012

Все ответы одинаковы, поэтому я решил опубликовать что-то другое:

var inputs_to_values = {
    'coordX_0' : 'some value',
    'coordY_0' : 'some other value',
    'edit_0'   : 'N',
    'remove_0' : '_',
    'add_0'    : '-',
    'go_0'     : 'stop?'
};
$('#form_coord_0').find('input').val(function (index, value) {
    return inputs_to_values[this.id];
});

Вы можете передать .val() функцию, все, что будет возвращено из функции для каждого элемента, будетновое значение:

Функция, возвращающая значение для установки.

this является текущим элементом.

Получает позицию индексаэлемент в наборе и старое значение в качестве аргументов.

Источник: http://api.jquery.com/val

В приведенном выше коде предполагается, что каждый вход будет иметь свойство в inputs_to_valuesобъект, так что вы можете преобразовать идентификатор ввода в новое значение для этого ввода.

Вот демо: http://jsfiddle.net/zYfpE/

3 голосов
/ 18 января 2012

Просто напишите:

$("#coordX_0").val(123);

В jQuery, text - функция для извлечения текста в дом.

3 голосов
/ 18 января 2012

Попробуйте вместо этого, используя метод val:

$("#coordX_0").val('some string or number');
3 голосов
/ 18 января 2012
$("#coordX_0").val("123");

Тебе тоже нужны цитаты, я думаю.Хотя это может работать в обоих направлениях.

3 голосов
/ 18 января 2012

Для установки значения поля ввода его

$("#coordX_0").val(123)
2 голосов
/ 18 января 2012

используйте функцию val

$("#coordX_0").val("123");
2 голосов
/ 18 января 2012

Используйте метод val для установки текста любого поля input.

$("#coordX_0").val(123);
1 голос
/ 18 января 2012

Используйте это вместо:

$("#coordX_0").val("123");
...