javascript / jquery生成输入元素

时间:2012-08-14 19:13:31

标签: javascript jquery input field add

所以我有这个代码。我想要完成一些事情 对于javascript人来说可能很简单。如果选择了某个选项 然后在div上添加一个输入字段。

<select name="amount" >
    <option value="50">50$</option>
    <option value="100">100$</option>
    <option value="Other">Other</option>
</select>

<div id="custom_price">

</div>

所以我想在选择'其他'选项后​​添加输入字段。我知道有 一个简单的方法,但我不能使它工作:

document.getElementById('custom_price').innerHTML += "<input type="text" name="amount"/>"

所以custom_div看起来像:

<div id="custom_price">
Custom price:<br>
<input type="text" name="amount"/>
</div>

5 个答案:

答案 0 :(得分:5)

最好的方法是实际制作dom元素。

var newInput = document.createElement("input");
newInput.type="text";
newInput.name="amount";
document.getElementById('custom_price').appendChild(newInput);

也许有这样的处理程序:

指定您的选择ID:<select name="amount" id="amount">

$("#amount").change( function() {
 if( $(this).val() == "Other" ){
  document.getElementById('custom_price').innerHTML = "";
  var newInput = document.createElement("input");
  newInput.type="text";
  newInput.name="amount";
  document.getElementById('custom_price').appendChild(newInput);
 }
});

答案 1 :(得分:1)

根据你的问题的标签判断你正在使用jQuery。因此添加输入相当容易。

$("select[name=amount]").change(function() {
    if ($(this).val() == 'Other') {
        $("#custom_price").append('<input type="text" name="amount"/>');
    }
})

答案 2 :(得分:1)

这是

document.getElementById('custom_price').innerHTML += '<input type="text" name="amount" />';

如果您使用"开始字符串,则必须转义其中的字符"\")或使用'

答案 3 :(得分:0)

使用jQuery

$("#custom_price").empty().append('Custom price:<br><input type="text" name="amount"/>')

答案 4 :(得分:0)

只需将输入放在div中并最初隐藏div。然后在必要时使用jQuery / JS来显示这个div。

$('select[name="amount"]').change(function() {
    if($(this).val() == 'Other') {
        $('#custom_price').show();
    } else {
        $('#custom_price').hide();
    }
});

<div id="custom_price" style="display: none;">
    <p>Custom price:</p>
    <input type="text" name="amount"/>
</div>