【问题标题】:Auto populate field base on what was entered in another field simultaneously根据同时在另一个字段中输入的内容自动填充字段
【发布时间】:2013-08-27 20:07:56
【问题描述】:

我试图弄清楚如何根据使用 javascript 在另一个输入字段中输入的内容自动填充输入值。这是我的代码:

<script>
add = document.getElementById('address').value;
city = document.getElementById('city').value;
state = document.getElementById('state').value;
zip = document.getElementById('zip').value;
compAdd = add+" "+city+" "+state+" "+zip;
function showAdd(){
    document.getElementById('shipadd1').value=compAdd;
    document.getElementById('add1').innerHTML=compAdd;
}
</script>

<form action="" onchange="showAdd();">

Home Address: <input id="address" name="address" type="text"  /><br/>
Apt or Suite Number: <input id="suite" name="suite" type="text" /><br/>
City/Town: <input id="city" name="city" type="text" /><br/>
State:<select id="state" name="state" value="">...</select><br/>
Zip:<input id="zip" name="zip" type="text" value=""/><br/>


<p> Select Shipping Address Below: </p>

<input type="checkbox" id="shipping-address-1" name="address1" value=""><span id="shiadd1">(Print auto-populated shipping address here...)</span>

<input type="checkbox" id="shipping-address-2" name="address2" value="">ABC Corp 123 Main Street, My City, State Zip
</form>

【问题讨论】:

  • 为什么这个标签是 jQuery?我没有看到。
  • 你想在没有 jQuery 的情况下这样做吗?
  • 如果可以用 JQuery 完成,是的。无论哪种方式都适合我。

标签: javascript jquery forms input


【解决方案1】:

我根据您的要求创建了js fiddle

HTML

Home Address:
<input id="address" name="address" type="text" />
<br/>Apt or Suite Number:
<input id="suite" name="suite" type="text" />
<br/>City/Town:
<input id="city" name="city" type="text" />
<br/>State:
<select id="state" name="state" value="">
    <option value="AL">Alabama</option>
    <option value="AK">Alaska</option>
</select>
<br/>Zip:
<input id="zip" name="zip" type="text" value="" />
<br/>
<p>Select Shipping Address Below:</p>
<input type="checkbox" id="shipping-address-1" name="address1" value="">
<label for="shipping-address-1" id="shiadd1">(Print auto-populated shipping address here...)</label>
<input type="checkbox" id="shipping-address-2" name="address2" value="">
<label for="shipping-address-2">ABC Corp 123 Main Street, My City, State Zip</label>

JavaScript

$("#address,#suite,#city,#state,#zip").change(function () {
    var addressArray = [$("#address").val(), $("#suite").val(), $("#city").val(), $("#state").val(), $("#zip").val()];
    $("#shiadd1").text(addressArray.join(' '));
});

【讨论】:

    【解决方案2】:

    我做了一个通用的例子:

    HTML

    <input type="text" class="first">
    <input type="text" class="second">
    

    javascript

    $(".first").on('keyup',function(){
        $(".second").val($(this).val());
    });
    

    http://jsfiddle.net/fmdwv/1/

    为了你的目的:

    $("#address").on('change', function(){
      $("#shipping-address-1").val($(this).val());
    });
    

    【讨论】:

    • 嘿,这很适合简单的输入!但是为什么它不能使用 type="date" 呢?:(
    • 它没有取最后一个字母。我的意思是如果我输入一个地址,美国然后它会显示在美国
    • @user9437856 更新:你应该使用keyup 而不是keydown
    • @steo,感谢您的回复,实际上我使用此代码找到了我的解决方案。我必须在全名字段函数 updateFullName() { $("#fullname").val($("#firstname").val()+ ' ' + $("#lastname") 中显示名字和姓氏。 val()); } $("#firstname, #lastname").on('input', updateFullName);
    【解决方案3】:

    onchange 事件应该在 &lt;input&gt; 标签本身中使用,而不是在 &lt;form&gt; 中。

    【讨论】:

      【解决方案4】:

      创建带有两个输入文本框的简单 html 文件。第一个输入文本框将接受用户关于日期格式的输入,第二个输入文本框将以这种格式显示当前日期。 第一步完成后,实现日期选择库,根据第一个输入文本b中给出的用户输入选择一个日期并格式化它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多