2009-10-02 41 views
0

我有一个“添加人员”的形式与几个字段(姓名,地址,电话号码等)。如何使用Ajax动态地填充CakePHP中的输入文本字段?

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

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

任何有关如何去做的建议?谢谢。

+0

对于像洛杉矶或休斯顿这样拥有3个以上区号的大型都会区,你会怎么做?我建议下拉一下,但这不是用户可编辑的,我可能有一个我在纽约居住时获得的电话号码,但现在(我感谢手机计划),我住在芝加哥。我知道这不是你的问题,但只是一个头。 – Anthony 2009-10-02 00:48:22

回答

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()); 
    } 
}); 
1

如果你想改变一个文本输入的值,那么你可以使用.val()

因此,在你的ajax成功,你将会有一个回调:

success: function(data){ 
    $('#foo').val(data); 
} 
相关问题