【问题标题】:How to dynamically fill an input text field in CakePHP using Ajax?如何使用 Ajax 在 CakePHP 中动态填充输入文本字段?
【发布时间】:2010-12-03 04:37:01
【问题描述】:

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

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

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

有什么建议吗?

【问题讨论】:

  • 您会如何处理 LA 或休斯顿等具有 3 个以上区号的大都会区?我建议一个下拉菜单,但它不是用户可编辑的,而且我可能有一个我住在纽约时得到的电话号码,但现在(由于手机计划)我住在芝加哥。我知道这不是你的问题,只是提醒一下。

标签: jquery ajax cakephp jquery-events


【解决方案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());
    }
});

【讨论】:

    【解决方案2】:

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

    所以在你的 ajax 成功时你会有一个回调:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-15
      • 2013-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 1970-01-01
      相关资源
      最近更新 更多