我有两个g:textfields 在第一个我应该写一个数字,比如12,在它旁边的g:textfield中,它应该加载12号的预定名称。
第一个名为'shipper',另一个名为'shipperName' 每当我在'shipper'txtfield中编写代码12时,它应该在'shipperName'框中返回托运人的名称。
提前致谢!
示例:
http://i56.tinypic.com/2wfn19z.jpg
如果我写了数字12,它应该返回USPS
http://i53.tinypic.com/2i90mc.jpg
每个号码都应该有不同的'shipperName'
再次感谢!
答案 0 :(得分:2)
如果您使用jQuery,这很容易。查看事件处理程序(当用户离开数字框时,“模糊”是您想要的那个)。
例如:
$("#shipper").blur(function() {
$("#shipperName").load(
"${createLink(controller: 'shipper', action: 'resolveShipper')}?id=" +
$("#shipper").val()
);
});
结尾的$(this).val()是用户刚刚离开的输入字段的值。
“ShipperController.resolveShipper”操作看起来像这样:
def resolveShipper = {
render text: Shipper.get(params.id).name, contentType: "text/plain"
}
您可能还想做其他事情,例如在用户输入时自动填写shipperName字段而不会离开编辑字段,可能是在延迟之后。然而,事件处理程序保持不变,只是事件正在改变(从“模糊”到“更改”或类似的东西)
答案 1 :(得分:2)
要关联两个字符串,最简单的方法是使用一个对象来创建一个字典/地图,如下所示;
$('#input1').bind('keyup',function() {
var map = {
"1":"One",
"2":"Fish",
"3":"Bar"
};
$('#input2').val(map[$(this).val()]);
});
您可以在此处查看此操作:http://www.jsfiddle.net/dCy6f/
如果您希望仅在用户输入第一个输入字段时更新第二个值,请将“keyup”更改为“更改”。