2012-01-30 34 views
1

所有 我有以下形式輸入元素:使用jQuery填寫表單元素,但價值不及格,形成行動

<input name="payment_amount" type="text" id="payment_amount" value="" disabled> 

然後,我通過使用jQuery操縱這種形式元素的值:

jQuery(document).on('click','#remaining_balance',function(){ 
    jQuery("#payment_amount").attr('disabled', 'disabled'); 
    send_amount = jQuery("#value_to_transfer").val(); 
    jQuery("#payment_amount").val(send_amount); 
}); 

當我單擊該單選按鈕時,它會將值填充到我的payment_amount字段中,但是當我提交表單時,該值不會傳遞到我的接收頁面。任何想法爲什麼這樣?

在此先感謝。

回答

4

禁用的元素不會發送到服務器。啓用它,發送數據,然後再次禁用它。

+1

另外,你可以通過一個隱藏的輸入,而不是離開'#payment_amount'禁用。 – pete 2012-01-30 17:19:28

+0

@pete這也是個好主意。我實際上採用了不同的方法,只是給了readonly =「readonly」標籤,然後它正確地發送了它。我更新了我的jquery,只讀而不是禁用。 – user1048676 2012-01-30 17:24:45

0

從這個網站: http://webdesign.about.com/od/forms/a/aa071805.htm

我可以看到

所以「提交表單時禁用元素將不會成功」,禁用的表單字段不發送

你jQuery代碼不* un *設置禁用的字段,所以你設置的值,當然。但你沒有發送它。

SOLUTION:

// To enable 
$('#payment_amount').removeAttr('disabled'); 

// OR you can set attr to "" 
$('#payment_amount').attr('disabled', ''); 

(我得到了來自 http://jquery-howto.blogspot.com/2008/12/how-to-disableenable-element-with.html代碼段)

額外的獎勵: 你的jQuery傷害我的眼睛。爲什麼不使用

$('#remaining_balance').click(function(){ 
    ... 
} 

其實,你爲什麼不使用$操作符呢?嗯,你用它來代替「jquery」關鍵字。 所以,這麼說,你想要的解決方案(如果你想保持不使用$運算符):

jQuery("#payment_amount").removeAttr('disabled'); 
+0

這是因爲我使用Wordpress和非衝突它使我使用jQuery而不是使用$。我只做了.on,因爲我認爲.click功能導致了我的問題,但現在我知道我可以將其更改回來,並且不應該成爲問題。 – user1048676 2012-01-30 17:23:16

相關問題