我有一个包含几个字段的表单,其中一个字段应根据另一个字段的值进行更新。第一个的值是POST到另一个URL,返回的值应该用于填充第二个字段。这是代码:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
function lookup(rid) {
$.get("/handler?rid=" + $("input#rid").val(), function(update_rid){
$("#name").val(html(update_rid));
})
}
</script>
<form name="new_alert">
<input type="text" name="rid" id="rid" onkeyup="lookup(this.value);">
<br />
<input type="text" name="name" id="name">
</form>
POST工作正常,从/ hander返回正确的数据,我通过测试并使用$(“#testdiv”)填充它来确认.html(update_rid);
所以似乎问题出在我试图更新价值的方式,但我无法超越它。
答案 0 :(得分:3)
除非你在某处定义了一个名为html
的函数,否则你应该在没有它的情况下尝试它。
$("#name").val(update_rid);
答案 1 :(得分:2)
删除html()
中的val()
。
$.get("/handler?rid=" + $("input#rid").val(), function(update_rid){
$("#name").val(update_rid);
});
它仍然可能取决于您的服务器返回的数据类型。
作者注意
保持不引人注意!
将您的inline onkeyup handler
替换为
$(function(){
$('#rid').bind('keyup', function(){
lookup($(this).val());
});
});
答案 2 :(得分:0)
我建议输入,
<input type="text" name="rid" id="rid">
然后jQuery为
$('#rid').keyup(function(){
var self = this
$.get("/handler?rid=" + self.value , function(update_rid){
$("#name").val(update_rid);
});
})