2012-12-28 59 views
4

我有一個隱藏輸入的表單。jquery克隆一個輸入不會看到對值的更改

我.clone()它們並在.dialog()中顯示給用戶。

用戶進行了一些更改,我使用.val()更改隱藏的字段。

但是,下一次我克隆窗體(不重新加載頁面)我有初始值再次,並從來沒有更新的。

似乎有這個奇怪的錯誤/結果?見http://jsfiddle.net/YvBfP/使用.val()集(打破了可見輸入太)

$(this).closest('td').find('button').click(function() 
{ 
    var d = $('#pagamento_anticipato').html(); 

    $(d).dialog({ 
     modal: true, 
     width: 400, 
     height: 300, 
     close: function(event, ui) { 
       var importo = $(this).find('input[type="text"]').val(); 
       var descrizione = $(this).find('textarea').val(); 
       var select = $(this).find('select').val(); 
       $(this).remove(); 

       $('#pagamento_anticipato').find('input[id="importo"]').val(importo); 
       $('#pagamento_anticipato').find('#descrizione').val(descrizione); 
       $('#pagamento_anticipato').find('#tipo').find('option[value="' + select + '"]').attr('selected', true); 

      } 
    }); 
    return false; 
}); 
+0

我想你可以改變的DIV#錢的價值,但你不能jQuery的修改原有的HTML代碼。任何理解? –

回答

9

/獲取的電流值,而不是該元素的屬性。

$(element).val(value) // sets current value 
$(element).val() // <-- will always return the current value 

改變,你必須使用.attr()

$(element).attr('value',value) 

然後你會看到在HTML的變化屬性

http://jsfiddle.net/wirey00/bJjjw/

編輯:

剛剛發現這不適用於jQuery 1.5.x和更低..用jQuery 1.6.0+測試它,它工作正常

+0

不工作,如果你改變原來的價值,即3000 http://jsfiddle.net/N2npH/1/和不,我沒有downvoted –

+0

@roasted啊..它只是不適用於jQuery 1.5:/它工作正常jQuery 1.6+ –

+0

沒有看到,thx輸入 –

3

您正在設置輸入的value屬性,但檢查是否值屬性發生了變化。要查看元素值,請使用.val()不要檢查其html。不過,如果你需要更改的元素值屬性使用setAttribute

$('#money')[0].setAttribute('value', 3000); 

http://jsfiddle.net/YvBfP/4/