用jQuery填写表单

时间:2023-02-09 21:42:56

I am trying to use jQuery to fill in a form with some default values.

我试图使用jQuery填写一些默认值的表单。

The form is contained in a div which has an id. In fact every element has an id, I did so just to be able to quickly select every piece of the form using $("#id") syntax.
Here is the form:

表单包含在具有id的div中。实际上每个元素都有一个id,我这样做只是为了能够使用$(“#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>  

I need to set the coordX_0 text field with some value, let's say: 123.

我需要将coordX_0文本字段设置为某个值,例如:123。

I thought I could do

我以为我能做到

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

But it doesn't seem to work. Any hint?

但它似乎没有用。任何提示?

9 个解决方案

#1


21  

You can use the val() function to set input values

您可以使用val()函数来设置输入值

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

Incidentally, your original code could be made to work by setting value property on the actual, underlying dom element. You access the dom element by indexing your jQuery results:

顺便说一下,你可以通过在实际的底层dom元素上设置value属性来使你的原始代码工作。您可以通过索引jQuery结果来访问dom元素:

$("#coordX_0")[0].value = 123;  

#2


14  

All the answers are the exact same so I thought I'd post something different:

所有答案都是完全相同的,所以我想我会发布一些不同的东西:

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

You can pass .val() a function, whatever is returned from the function for each element will be the new value:

你可以传递.val()函数,从函数返回的每个元素都将是新值:

A function returning the value to set.

将值返回到set的函数。

this is the current element.

这是当前的元素。

Receives the index position of the element in the set and the old value as arguments.

接收集合中元素的索引位置和旧值作为参数。

Source: http://api.jquery.com/val

The above code expects that each input will have a property in the inputs_to_values object so you can convert the ID of the input to the new value for that input.

上面的代码期望每个输入在inputs_to_values对象中都有一个属性,因此您可以将输入的ID转换为该输入的新值。

Here is a demo: http://jsfiddle.net/zYfpE/

这是一个演示:http://jsfiddle.net/zYfpE/

#3


3  

To set the value of an input field its

设置输入字段的值

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

#4


3  

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

You need the quotes too I think. Although it might work both ways.

我想你也需要引号。虽然它可能两种方式都有效。

#5


3  

Try this instead, using the val method:

请尝试使用val方法:

$("#coordX_0").val('some string or number');

#6


3  

Just write:

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

In jQuery, text is a function to extract text in dom.

在jQuery中,text是一个在dom中提取文本的函数。

#7


2  

Use val method to set the text of any input field.

使用val方法设置任何输入字段的文本。

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

#8


2  

use the val function

使用val函数

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

#9


1  

Use this instead:

改为使用它:

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

#1


21  

You can use the val() function to set input values

您可以使用val()函数来设置输入值

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

Incidentally, your original code could be made to work by setting value property on the actual, underlying dom element. You access the dom element by indexing your jQuery results:

顺便说一下,你可以通过在实际的底层dom元素上设置value属性来使你的原始代码工作。您可以通过索引jQuery结果来访问dom元素:

$("#coordX_0")[0].value = 123;  

#2


14  

All the answers are the exact same so I thought I'd post something different:

所有答案都是完全相同的,所以我想我会发布一些不同的东西:

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

You can pass .val() a function, whatever is returned from the function for each element will be the new value:

你可以传递.val()函数,从函数返回的每个元素都将是新值:

A function returning the value to set.

将值返回到set的函数。

this is the current element.

这是当前的元素。

Receives the index position of the element in the set and the old value as arguments.

接收集合中元素的索引位置和旧值作为参数。

Source: http://api.jquery.com/val

The above code expects that each input will have a property in the inputs_to_values object so you can convert the ID of the input to the new value for that input.

上面的代码期望每个输入在inputs_to_values对象中都有一个属性,因此您可以将输入的ID转换为该输入的新值。

Here is a demo: http://jsfiddle.net/zYfpE/

这是一个演示:http://jsfiddle.net/zYfpE/

#3


3  

To set the value of an input field its

设置输入字段的值

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

#4


3  

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

You need the quotes too I think. Although it might work both ways.

我想你也需要引号。虽然它可能两种方式都有效。

#5


3  

Try this instead, using the val method:

请尝试使用val方法:

$("#coordX_0").val('some string or number');

#6


3  

Just write:

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

In jQuery, text is a function to extract text in dom.

在jQuery中,text是一个在dom中提取文本的函数。

#7


2  

Use val method to set the text of any input field.

使用val方法设置任何输入字段的文本。

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

#8


2  

use the val function

使用val函数

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

#9


1  

Use this instead:

改为使用它:

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