2011-04-12 23 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" />