下拉框中的选项可更改输入框

时间:2011-04-12 01:02:56

标签: jquery onchange drop-down-menu inputbox

HELLP,

我正在为我的网页开发一个在线捐赠网站。我希望用户有一个带有付款选项的下拉框($ 5,$ 10,$ 20,Other)。如果选择“其他”选项,我目前已将其设置为显示输入框的位置;如果选择了另一个选项($ 5,$ 10,$ 20),则隐藏输入框。此外,捐款通过pay-pal进行,我已将Pay-Pal捐赠按钮/ php纳入网站。我遇到了以下问题:因为输入框是填充捐赠金额的字段,Pay-Pal无法识别下拉金额。例如,如果我选择“其他”选项,请在输入框中输入$ 100,然后从下拉框中选择“$ 10”选项(让我们假设我改变主意并想捐出10美元而不是100美元),然后点击捐赠按钮,Pay-Pal处理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();
  });

});

3 个答案:

答案 0 :(得分: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');
    }
});

答案 1 :(得分: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" />

答案 2 :(得分:0)

<label>Donetion:</label>
    <input list="browsers" name="myBrowser" placeholder="Donetion" />
    <datalist id="browsers">
    <option value="$5">
    <option value="$15">
</datalist>