2011-04-12 76 views
0

Hellp,選項在下拉框中更改輸入框

我正在爲我的頁面開發一個在線捐贈網站。我希望用戶有一個帶有付款選項的下拉框(5美元,10美元,20美元,其他)。如果選擇了「其他」選項,我現在已將其設置在顯示輸入框的位置;如果選擇了另一個選項($ 5,$ 10,$ 20),則輸入框被隱藏。此外,通過付費朋友進行捐款,並將Pay-Pal捐贈按鈕/ php納入網站。我遇到了以下問題:因爲輸入框是填充捐贈金額的字段,Pay-Pal無法識別下拉金額。例如,如果我選擇「其他」選項,請在輸入框中輸入$ 100,然後從下拉框中選擇「$ 10」選項(讓我們假設我改變了主意並且想捐出10美元而不是100美元),然後點擊捐贈按鈕,PayPal處理付款爲100美元而不是10美元(因爲它從輸入框中拉出)。

我相信我有一個修復,但我不一定知道如何編碼它。我正在尋找以下方面的幫助:當用戶從下拉框中選擇一個選項時,我希望此操作使用相應的值填充(隱藏)輸入框。同樣,如果用戶從下拉列表中選擇了「其他」選項,我希望輸入框(現在可見)填充爲「」,因爲用戶將自己填充此選項。

再一次,我不確定如何編寫這樣的代碼,我希望有人能指引我朝着正確的方向發展。我真誠地感謝任何幫助,我非常珍惜你的時間。謝謝!

編輯:謝謝你的幫助。下面是我爲現在的代碼:

<select name="amount" id="otherFieldOption" class="dropdown"> 
        <option value="20">$20</option> 
      <option value="10">$10</option> 
      <option value="5" selected="selected">$5</option> 
      <option value="otherField">Other</option> 
    </select> 

    <div id="otherField"> 
     Amount: 
     <input type="text" id="amount" name="amount" class="textfield" size="10"/> 
    </div> 

jQuery代碼:

$(document).ready(function() { 
    $.viewInput = { 
    '0' : $([]), 
    //THIS IS THE NAME OF THE DIV WRAPPING THE HIDDEN FIELD 
    'otherField' : $('#otherField'), 
    }; 

$('#otherFieldOption').change(function() { 
    // HIDES THE INPUT FIELD IF ANOTHER DROPDOWN ITEM IS SELECTED ONCE THE HIDDEN FIELD IS LOADED 
    $.each($.viewInput, function() { this.hide(); }); 
    // SHOWS THE INPUT FIELD ITEM IF SELECTED 
    $.viewInput[$(this).val()].show(); 
    }); 

}); 
+0

伊萬走了,歡迎計算器!如果我們要幫助你,我們將需要看到你的一些代碼,以便我們看到你做錯了什麼,並告訴你如何糾正它 – mcgrailm 2011-04-12 01:09:41

回答

4

這裏是一個demo

<select id="choice"> 
    <option value="10">10</option> 
    <option value="20">20</option> 
    <option value="50">50</option> 
     <option value="other">other</option> 
</select> 
<input type='text' id="other" class="hidden" /> 

和jQuery與

$('#choice').change(function(){ 
    var selected_item = $(this).val() 

    if(selected_item == "other"){ 
     $('#other').val("").removeClass('hidden'); 
    }else{ 
     $('#other').val(selected_item).addClass('hidden'); 
    } 
}); 
+0

這幾乎就是我所需要的;然而,當用戶選擇「其他」時,我希望輸入框清晰,至此它輸入文本(即:「其他」)而不是「」。希望這是有道理的,關於如何實現這一變化的任何想法?這幾乎正​​是我需要的。謝謝 – Ivan 2011-04-12 02:00:45

+0

@Ivan我更新了演示和我的文章 – mcgrailm 2011-04-12 02:05:12

0

當用戶點擊選擇框清除文本框。

試試這個:

<select id="moneySelect" onchange="$('#moneyText').val(''); $('#sendValue').val(this.value);"> 
    <option value="10">10</option> 
    <option value="20">20</option> 
    <option value="50">50</option> 
</select> 
<input type='text' id="moneyText" onkeypress="$('#sendValue').val(this.value)"> 
<input type="hidden" name="sendValue" id="sendValue" />