【问题标题】:Copy field value from one field to another将字段值从一个字段复制到另一个字段
【发布时间】:2013-03-26 21:17:00
【问题描述】:

我需要将两个单独字段中的两个字段值复制到同一页面上另一个表单中的相应字段。

输入字段:名字 输入字段:姓氏

将这些值复制到:

输入字段:结算名字 输入字段:运输名字

我尝试了以下代码无济于事,我从另一个网站上破解了它,该网站有一个相同的复选框,在我的情况下,有一个表格用于输入客户的名字,姓氏和电子邮件,然后客户单击“继续”按钮,然后加载下一个表单,此表单是我想根据初始表单自动填写名字/姓氏的地方。

这是我在文档中使用的代码。

<script type = "text/javascript">
function FillBilling(f) {
  if(f.dispatch[checkout.update_steps].submit == true) {
    f.user_data[firstname].value = f.user_data[b_firstname].value;
    f.user_data[lastname].value = f.user_data[b_lastname].value;
  }
}
</script>

这些字段是默认生成的,遗憾的是我无法更改 ID 或名称值。

名字:

<input type="text" class="input-text " value="" size="32" name="user_data[firstname]" id="elm_6">

姓氏:

<input type="text" class="input-text " value="" size="32" name="user_data[lastname]" id="elm_7">

继续按钮:

<input type="submit" value="Continue" name="dispatch[checkout.update_steps]">

结算名字:

<input type="text" class="input-text " value="" size="32" name="user_data[b_firstname]" id="elm_14">

帐单姓氏:

<input type="text" class="input-text " value="" size="32" name="user_data[s_firstname]" id="elm_16">

我认为,但可能是错误的,因为继续提交按钮的名称包含一个点 (dispatch[checkout.update_steps]),这会破坏 Javascript,但我不确定。

我还注意到“名字”、“姓氏”字段和“继续”按钮位于单独的表单上,数据通过 Ajax 发送到同一页面上的第二个表单。第一个表单具有 name="step_one_contact_information_form",第二个表单(Billing First Name、Billing Last Name)具有 name="step_two_billing_address"。

有什么想法吗?

感谢您的建议!

【问题讨论】:

    标签: javascript html input copy field


    【解决方案1】:

    我建议你用 jQuery 来做。这很简单,我为你做了这个: http://jsfiddle.net/FPsdy/1/

    下面是代码示例:

    $('input[type=submit]').click(function(){
       $('#elm_14').val($('#elm_6').val());
       $('#elm_16').val($('#elm_7').val());
    });
    

    【讨论】:

    • 我试过这个。它没有用,因为我是个白痴。页面上有两个单独的表单... 第一个表单:
      第二个表单:
      所以看来我需要找出如何从一种形式传递值到下一个表格,但我不知道该怎么做。有任何想法吗?感谢您迄今为止的帮助,非常感谢!
    【解决方案2】:

    试试这样的:

    为你的按钮添加一个 onclick 事件(最好使用事件监听器,但以下方式也可以)

    <input type="submit" value="Continue" name="dispatch[checkout.update_steps]" onclick="return fillBilling()">
    

    并更改您的功能,使其看起来像这样:

    function fillBilling() {
        document.getElementsByName("user_data[b_firstname]")[0].value = document.getElementsByName("user_data[firstname]")[0].value;
        document.getElementsByName("user_data[s_firstname]")[0].value = document.getElementsByName("user_data[lastname]")[0].value;
        return false;
    }
    

    如果 id 始终相同,则可以使用 document.getElementByID("elm_[x]") 代替(将 [x] 替换为各自的 ID)

    另外,我建议将按钮更改为键入“按钮”,这样如果您不打算使用它来提交表单:

    <input type="button"... />
    

    希望对你有帮助

    【讨论】:

    • 我试过这个。它没有用,因为我是个白痴。页面上有两个单独的表单... 第一个表单:
      第二个表单:
      所以看来我需要找出如何从一种形式传递值到下一个表格,但我不知道该怎么做。有任何想法吗?感谢您迄今为止的帮助,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多