javascript - 获取输入中的输入值

标签 javascript html

我有以下选项的表格:

    <select name="choices" id="options" onchange="showText()">
    <option value="">Select amount</option>
    <option value="1">100PHP</option>
    <option value="2"> 500PHP</option>
    <option value="3"> 1000PHP</option>
    <option value="4"> 2000PHP</option>
    <option value="5"> 3000PHP</option>
    <option value="6"> 4000PHP</option>
    <option value="7"> 5000PHP</option>
    <option value="8"> 10,000PHP</option>
    <option value="others"> others..</option>
    </select>

    <div class="control-group" id="show" style="display:none;">

当用户选择选项 1-8 时,它会显示金额。我已经通过这个 javascript 成功地做到了这一点:

    function showText(){
   var value = document.getElementById('options').value;
   if(value == '1'){
   var amount = document.getElementById("amount");
   amount.value = "100";
   document.getElementById('show').innerHTML =
   "<br><br><font size =+1><b>Amount&nbsp;&nbsp;&nbsp;P 100 </b></font>"
   document.getElementById('show').style.display = "block";
   }
   else if(value == '2'){
   var amount = document.getElementById("amount");
   amount.value = "500";
   document.getElementById('show').innerHTML = "<br><br><font size =+1><b>Amount&nbsp;&nbsp;&nbsp;P 500 </b></font>" 
   document.getElementById('show').style.display = "block";
   }
   //up to option 8

现在,当用户选择“其他”时,它将显示另一个输入字段。用户将输入的值将是值选项“其他”:

    else if (value == 'others'){
   document.getElementById('show').innerHTML = "<br><div class='control-group'><label class='control-label'>Enter Amount</label><div class='controls'><input type='text' id='other_amount' name='other_amount'> ";
   var amount = document.getElementById("other_amount").value;
   document.getElementById('show').style.display = "block";
   }

不幸的是,我未能成功将第二个输入的值设为第一个输入的值。我希望你能帮忙!谢谢!

最佳答案

首先,您可以大大改进您的代码:

function showText(){
    var value = document.getElementById('options').value;
    if(value == '-1'){
       //Other
       document.getElementById('hidden').style.display = 'block';
    }
    else {
        document.getElementById('hidden').style.display = 'none';
        var amount = document.getElementById("amount");
        amount.value = value;
        document.getElementById('show').innerHTML = "<br><br><font size =+1><b>Amount&nbsp;&nbsp;&nbsp;P " + value + "</b></font>" 
        document.getElementById('show').style.display = "block";
    }
}

将 html 更改为:

<select name="choices" id="options" onchange="showText()">
    <option value="">Select amount</option>
    <option value="100">100PHP</option>
    <option value="500">500PHP</option>
    <option value="1000">1000PHP</option>
    <!-- (...) -->
    <option value="-1"> others..</option>
</select>

我还建议在他们选择已经在您的 html 中的 others 时添加“隐藏”输入,但将其设置为不可见:

<div id="hidden" style="display:none;"class='control-group'>
    <label class='control-label'>Enter Amount</label><div class='controls'>
        <input type='text' id='other_amount' name='other_amount' onChange='otherText()'/>
     </div>
</div>

现在,当他们选择值为 -1others.. 时,您要显示一个输入,他们可以在其中选择自己的值:

if (value == -1) {
    document.getElementById('hidden').style.display = 'block';
}

现在我们只需要 otherText() 函数,这应该不是问题:

function otherText() {
        document.getElementById('amount').value = document.getElementById("other_amount").value;
}

Working jsFiddle

关于javascript - 获取输入中的输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30345278/

相关文章:

javascript - 为什么单态和多态在 JavaScript 中很重要?

javascript - 在 JavaScript 中设置 CSS 属性?

html - sql中如何获取奇数节点和偶数节点的值

javascript - 如何保留用户的输入打印?

jquery - 怎么办,当YouTube的视频剪辑完成后,像在begin中一样显示开始剪辑?

javascript - 单击按钮时 HTML 函数不返回值

html - 调整图像大小时,mozilla firefox 上出现奇怪的图像边界

javascript - promise 的循环。如何检测现在哪个 Promise 返回结果?

Javascript 单例类默认值

JavaScript 秒表 SetInterval 忽略 ClearInterval