【发布时间】:2014-07-14 10:11:24
【问题描述】:
在通过 jQuery 成功调用 ajax 后,我需要更新表单 div。我的页面上有一些表单元素。我想用从 ajax 调用返回的值填充它。这是json格式。
而 #inst_name 是一个输入[type=text],其中做两件事。
- 作为通过 jquery 自动完成的自动完成输入。
- 作为此脚本中 mysql 查询的名称参考。
HTML:
<input type="text" name="inst_name" id="inst_name" />
<form method="post" action="">
<textarea name="inst_addr" id="inst_addr"></textarea>
<select name="inst_prov" id="inst_prov">
<option value="1">Bangkok</option>
<option value="2">Chiang Mai</option>
<option value="3">Samui</option>
<option value="4">Phuket</option>
</select>
<input type="text" name="inst_tel" id="inst_tel" />
<input type="text" name="inst_fax" id="inst_fax" />
<label><input type="radio" name="inst_dep" id="inst_dep1" value="1" />Dep 1</label>
<label><input type="radio" name="inst_dep" id="inst_dep2" value="2" />Dep 2</label>
<label><input type="radio" name="inst_dep" id="inst_dep3" value="3" />Dep 3</label>
</form>
jQuery :
$('#inst_name').keyDown(function(){
$.ajax({
url: 'inc/form_institute.json.php',
dataType:'json',
data: {name:$('#inst_name').val()},
success: function(data){
$('#inst_addr').html(data.addr);
$('#inst_prov').val(data.prov);
$('#inst_zip').val(data.zip);
$('#inst_tel').val(data.tel);
$('#inst_fax').val(data.fax);
$('#inst_dep').val(data.dep);
}
});
});
JSON:
{
"addr":"123/4 Kitty Ave.",
"prov":"80",
"zip":"12345",
"tel":"0753245675",
"fax":"075123456",
"dep":"2"
}
【问题讨论】:
-
有模糊、焦点、按键、keyup、keydown、输入、粘贴等...你订阅什么事件取决于你想要什么行为?
-
@Wilf,并进行更改。试试 $('#inst_name').change(....
标签: javascript jquery html ajax json