jQuery根据其他输入将值附加到html输入

时间:2010-03-22 17:56:49

标签: jquery html forms

好吧,标题有点令人困惑,但这是我的困境。我已经制作了一个网络应用程序来在工作中内部跟踪UPS软件包。目前,您输入了跟踪编号,然后选择从中发货的城市。帐户中的所有跟踪号码都以相同的X数量开头。因此,如果有人将“1Z8473 ...”输入到一个输入中,“Houston,TX”将自动输入到下一个输入中。这是一件难以实现的事吗?我从哪里开始?

3 个答案:

答案 0 :(得分:2)

您可以监控一个输入以进行更改,然后根据其匹配指定值的内容,更新第二个输入。

琐碎的例子:

<label for="code">Code:</label> <input type="text" id="code" />

<label for="area">Area:</label> <input type="text" id="area" />

<script type='text/javascript'>
    $(document).ready(function(){
        // Listen for change on our code input
        $('#code').keyup(function(){
            var entered = $(this).val();  // text entered in 'code'

            // Look up the start of the code (first 6 digits?)
            if(entered.substring(0,6) == '1Z8473')
            {
                // Set the value of our "area" input
                $('#area').val('Houston, TX');
            }
        });
    });
</script>

上面的示例使用一个简单的if块来进行匹配。正如其他人在此处发布的那样,您可以将此值发送到服务器端脚本,该脚本执行所需区域的地理位置。所以用以下内容替换上面的if

// Look up the area depending on the code entered
$.getJSON(
    '/geocoder_on_your_site.php?area='+entered, 
    function(data) {
        $('#area').val(data.location);
});

并在您的服务器上,geocoder_on_your_site.php

$input = $_REQUEST['entered'];
// Assume input is sanitised & checked first..
...
// Look up the area base on location
$data['location'] = look_up_location($input);

echo json_encode($data);

答案 1 :(得分:0)

您需要一个地理位置API,例如this one

然后你需要使用AJAX调用来查询它,并将结果的一部分(在这种情况下是城市)放入输入框。

Here's an example类似的东西,安装Firebug并观看它发送的请求。

Source code is here

答案 2 :(得分:0)

检查键盘事件并通过ajax将输入发送到服务器端工具,该工具查看数字并将城市发回。只需将其添加到输入的value即可添加。