从一个文本字段的输入使用jQuery或JSON自动填充另一个文本字段

时间:2011-12-27 12:30:17

标签: javascript jquery ajax

我是AJAX和JSON的新手。我在最后三天里一直在努力。基本上我有一个包含五个文本字段的表单。如果用户在文本字段中输入item-name或item-id,则另一个文本字段将通过AJAX / JSON从数据库自动填充。

形式如

<form>
    <input type='text' name='item-id' />
    <input type='text' name='item-name' />
    <input type='text' name='quantity' />
    <input type='text' name='tax' />
    <input type='text' name='price' />

    <input type='submit' name='submit' value='submit'/>
</form> 

此外,如果用户增加数量字段,则所有其他字段应自动更新,从而提高价格和税率。请指导我如何调用PHP脚本并更新这些字段。

1 个答案:

答案 0 :(得分:0)

keypress事件绑定到item-name(或item-id)并超时(因此它会在一段时间后自动获取数据。无需按ENTER或任何其他确认键)并使用jQuery的{{ 3}} API来获取正确的数据。之后,使用Ajax API将从ajax查询中获取的正确值添加到其余字段。

每页底部都有很好的例子,所以一定要向下滚动!

这样的事情:

var updateTimeout = null;

$("#item-name").keypress(function(event) {
    if(updateTimeout != null) {
        clearTimeout(updateTimeout);
    }

    updateTimeout = setTimeout(function() {
        var item = $("#item-name").val() 
        autoFill(item);
    }, 1000); // 1000 = 1s
}   

function autoFill(itemName) {
    $.ajax({
        type: "POST",
        url: "myurl.php",
        data: "name=" + itemName
        dataType: "json",
        success: function(data) {
            $("#quantity").val(data["quantity"]);
            $("#tax").val(data["tax"]);
        });
}