如何使用Ajax动态填充CakePHP中的输入文本字段?

时间:2009-10-02 00:18:49

标签: jquery ajax cakephp javascript-events

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

我希望能够在提交表单之前使用其他字段的信息预填充一些字段。例如,一旦用户进入城市,Ajax查询将拉出电话号码的区号(Controller具有“城市到区号”数据库)并将其放在电话号码字段中,希望它能节省一些打字。

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

有关如何进行的任何建议?感谢。

2 个答案:

答案 0 :(得分:1)

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

所以在你的ajax成功中,你将有一个回调:

success: function(data){
  $('#foo').val(data);
}

答案 1 :(得分: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());
    }
});