2010-06-15 124 views
1

我有一個表單有幾個字段,其中一個應根據另一個字段的值更新。第一個值被POST到另一個URL,並且返回的值應該用於填充第二個字段。下面的代碼:用Jquery更新輸入值

<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工作正常,並且正確的數據從/投手,我證實了通過使測試和填充它使用$(「#testdiv」)HTML(update_rid)返回;

所以看起來問題在於我試圖更新值的方式,但我無法超越。

+0

哎呀,看起來這是一個簡單的一個。 – Evan 2010-06-15 07:22:25

回答

2

val()取出html()

$.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

除非您在某處定義了一個名爲html的函數,否則您應該在沒有它的情況下嘗試。

$("#name").val(update_rid);

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); 
    }); 
}) 
+0

@jAndy - 眨眼......沒有難過的感覺...... – Reigel 2010-06-15 07:45:44

+0

5分鐘後,複製完全相同的答案可能會帶上覆選標記,這讓人印象深刻:p – jAndy 2010-06-15 07:45:49

+0

它沒有被複制......感嘆...... – Reigel 2010-06-15 07:47:00