2010-04-27 120 views
3

我試圖使用jQuery更改輸入文本框的值,但它不是在這裏工作, 是我的代碼...我如何更改jQuery的輸入字段的值?

<form method="get"> 
      <input id="temp" type="text" name="here" value="temp value" /> 
      <input class="form" type="radio" value="1" name="someForm" /> Enter something 
      Here: <input id="input" type="text" name="here" value="test value" /> 
    </form> 

    <script> 

    $(document).ready(function() { 
     $('.form').click(function() { 
      var newvalue = $("#input").val(); 
      $("#temp").val(newvalue); 
      $("#input").val($("#temp").val()); 
     }); 
    }); 

</script> 

的「#INPUT」文本框中的值不改變!!!!!! 這是爲什麼? 我失蹤了什麼? 感謝提前1000萬 p.s.文本框的值正在改變,但輸入的值屬性不是! 即使我寫...

var value = $("#temp").val(); 
$("#input").attr("value", value); 
+0

你錯過了一個散列符號('#'),我會說 – SilentGhost 2010-04-27 12:21:36

+0

目標是什麼?看起來好像有幾個小問題,其中任何一個都可能導致你看到的任何問題,但是不知道你要找的最終結果究竟是什麼,我不認爲有人會給出你需要的答案。 – 2010-04-27 12:28:56

+0

我的目標是輸入一些文本,並將「#input」文本框的「value」屬性更改爲輸入的值。 – Lina 2010-04-27 12:54:55

回答

2

您選擇input沒有#input所以你與id="input"設置第一<input>不是元素的值。

第一個輸入是#temp,因此您要將該輸入的值設置爲其當前值。

1

嘗試:

$("#input").val($('#temp').val()); 

代替:

$("input").val($(temp).val()); 
+0

好的,文本值正在改變,那麼「value」屬性呢,它不會改變!即使我寫... var x = $(「temp」)。VAL(); (「#input」)。attr(「value」,「x」); – Lina 2010-04-27 12:42:19

6

的價值並沒有改變,因爲您指定的值#input已經有了。


有定睛一看:

var newvalue = $("#input").val(); 
$("#temp").val(newvalue); 
$("#input").val($("#temp").val()); 
  1. #input設值爲foo
  2. 分配newvalue = value of #input = 'foo'
  3. 您設置的#temp值:
    value of #temp = newvalue = value of #input = 'foo'
  4. 您設置的#input值:
    value of #input = value of #temp = newvalue = value of #input = 'foo'

所以這取決於哪個字段應該得到它的價值,你必須改變這個;)

+0

這是邏輯上的問題..之前Lina詢問過這個語法.. $(「input」).val($(temp).val()); 所以現在你正確的......糾正正確的語法後.. !!! – 2010-04-27 12:33:15