2012-06-25 77 views
0

我試圖使用Jquery將已經具有定義的值的一個框的值傳遞給另一個框。我嘗試了代碼,但我一直在文本框中而不是文本中獲得「未定義」。將預定義值設置爲另一個文本框

<input type="text" ID="readonly" runat="server" class="threeline-two" readonly= 
"readonly" value="[email protected]" /> 
<input type="text" ID="readonlytxt" runat="server" readonly = "readonly" /> 

<input type="text" ID="Year" runat="server" class="threeline-two" /> 
<input type="text" ID="Yeartxt" runat="server" /> 
    <script type="text/javascript"> 

     $(function() { 
      $('#Year').change(function() { 
       var TxtBox = document.getElementById("Yeartxt"); 

       TxtBox.value = $(this).val(); 
       var string = $(this).val() 

     var TxtBox2 = document.getElementById("readonlytxt"); 

       TxtBox2.value = $("readonly").val(); 
       var string = $("readonly").val() 
      }); 
     }); 

</script> 

http://jsfiddle.net/YAN2X/

回答

1
TxtBox2.value = $("#readonly").val(); 

是被需要的。 JQuery要求#表示它的ID,而不是類或元素標記。它像CSS選擇器一樣工作。更多關於JQuery選擇器here

請參閱this jsfiddle瞭解固定代碼。

+0

我一直在看這將近一個小時,不敢相信我沒有看到這一點。謝謝 – user1480978

+0

@johnmadrak有一個很好的,更簡化的解決方案。 如果你覺得很難閱讀,它仍然可能是值得使用jQuery或JavaScript而不是混合!這也有助於使這個錯誤更容易發現:) – jaypeagi

0

這種替換腳本:

$(function() { 
     $('#Year').change(function() { 
      var TxtBox = document.getElementById("Yeartxt"); 

      TxtBox.value = $(this).val(); 
      var string = $(this).val(); 

      $("#readonlytxt").val($("#readonly").val()); 

/* 
var TxtBox2 = document.getElementById("readonlytxt"); 

//$("readonly") selects no element: "#" is missing 
TxtBox2.value = $("readonly").val(); 
*/ 

     }); 
    }); 
2
 $(function() { 
      $('#Year').change(function() { 
       $("#Yeartxt").val($("#Year").val()); 
       $("#readonlytxt").val($("#readonly").val()); 
      }); 
     }); 
相關問題