0

我有一个“添加人员”表单,其中包含几个字段(姓名、地址、电话号码等)。

我希望能够在提交表单之前使用其他字段中的信息预先填写一些字段。例如,一旦用户输入一个城市,Ajax 查询将提取电话号码的区号(控制器有一个“城市到区号”数据库)并将其放入电话号码字段中,希望它能保存一些打字。

我尝试过使用observeField,但似乎它只能更改元素的 innerHTML,而不是输入字段的值。

关于如何进行的任何建议?

4

2 回答 2

1

如果要更改文本输入的值,则可以使用.val()

因此,在您的 ajax 成功中,您将有一个回调:

success: function(data){
  $('#foo').val(data);
}
于 2009-10-02T00:41:28.673 回答
1

假设你有两种形式:

<form id="formOriginal">
    <input type="text" name="name"/>
    <input type="text" name="address"/>
    <input type="text" name="city"/>
    <input type="text" name="state"/>
</form>

<form id="formCopy">
    <input type="text" name="name"/>
    <input type="text" name="address"/>
    <input type="text" name="city"/>
    <input type="text" name="state"/>
</form>

您应该能够遍历项目并复制值,如下所示:

$('#formOriginal input').each(function(e) {
    var name = e.attr('name');
    var $copy = $('#formCopy input[@name=' + name + ']');

    if ($copy) {
        $copy.val($(e).val());
    }
});
于 2009-10-02T04:47:49.743 回答