我最近问了一个关于使用jquery创建元素的问题。具体来说,我需要根据特定选择框的值创建/删除输入框。快速回答了一个非常好的解决方案如下:
$('select').change(function() {
var num = parseInt($(this).val(), 10);
var container = $('<div />');
for(var i = 1; i <= num; i++) {
container.append('<input id="id'+i+'" name="name'+i+'" />');
}
$('somewhere').html(container);
});
这非常有效。更改选择时,有没有办法让值保留在文本框中?例如,假设选择元素值设置为“2”,以便显示2个输入框。如果已经在这些框中输入了输入并且用户将select元素值更改为“3”,是否有办法让前2个输入框保留其值?
感谢您的帮助
安迪
答案 0 :(得分:1)
$('select').change(function() {
var num = parseInt($(this).val(), 10);
var container = $('<div />');
for(var i = 1; i <= num; i++) {
// append existing input if available
if($("#id"+i).length){
container.append($("#id"+i));
}
else {
container.append('<input id="id'+i+'" name="name'+i+'" />');
}
}
$('somewhere').html(container);
});
答案 1 :(得分:1)
以下行应该有效,简单明了:
var value = ($("#id"+i).val() || '');
container.append('<input id="id'+i+'" name="name'+i+'" value="'+value+'" />');
编辑,谢谢帕特里克。