这非常令人沮丧。我的代码工作正常,直到上周。当用户更改[使用change()
]下拉选项中的值时,我会在 HTML 页面中添加多个文本框。
以下是 HTML 代码段:
<div id="files" class="control-group">
<label class="control-label">No. of files</label>
<div class="controls" >
<select id="files" name="files" class="span3">
<option value="">--Select Option--</option>
<?php for($i=1;$i<21;$i++){ ?>
<option value="<?php echo $i ?>"><?php echo $i ?></option> <?php } ?>
</select>
</div>
</div>
<div class="control-group" id="titles">
<label class="control-label">File Titles</label>
<div class="controls" id="titleAdd"></div>
</div>
这是 Javascript / jQuery :
$(document).ready(function(){
$("#titles").hide();
});
var container;
// Add & Remove textboxes
$("#files").change(function(){
//Remove all textboxes
$("#titles").show();
$(container).empty();
$(container).remove();
//"DIV" ELEMENT AND DESIGN IT USING JQUERY ".css()" CLASS.
container = $('<div>', {class: 'controls'});
var option = $("#files").val();
for(i=1;i<=option;i++)
{
// Add a TextBox
$(container).append('<input style="display: block;" type=text name="Description[]" class="span3 input-left-top-margins" id="Description' + i +'"' + 'placeholder="File ' + i + ' Title" />');
}
$('#titleAdd').after(container); // ADD THE DIV ELEMENT IN THE RIGHT PLACE.
});
最令人恼火的是,这段代码几天前工作正常。
答案 0 :(得分:3)
有两个ID #files
。
请参阅此处的工作示例:https://jsfiddle.net/1c3b63f4/ - jQuery将始终在此作业中返回一个空字符串:$("#files").val();
。
答案 1 :(得分:2)
将'$("#files").change(function(){'
代码放在'document.ready'
内: -
$(document).ready(function(){
$("#titles").hide();
var container;
// Add & Remove textboxes
$("#files").change(function(){
//Remove all textboxes
$("#titles").show();
$(container).empty();
$(container).remove();
//"DIV" ELEMENT AND DESIGN IT USING JQUERY ".css()" CLASS.
container = $('<div>', {class: 'controls'});
var option = $("#files").val();
for(i=1;i<=option;i++)
{
// Add a TextBox
$(container).append('<input style="display: block;" type=text name="Description[]" class="span3 input-left-top-margins" id="Description' + i +'"' + 'placeholder="File ' + i + ' Title" />');
}
$('#titleAdd').after(container); // ADD THE DIV ELEMENT IN THE RIGHT PLACE.
});
});
答案 2 :(得分:2)
试试这个......
将id名称文件更改为filesdata,因为您已经使用div的“文件”作为div
<script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
<div id="files" class="control-group">
<label class="control-label">No. of files</label>
<div class="controls" >
<select id="filesdata" name="files" class="span3">
<option value="">--Select Option--</option>
<option value="1">1</option>
<option value="3">2</option>
<option value="3">3</option>
</select>
</div>
</div>
<div class="control-group" id="titles">
<label class="control-label">File Titles</label>
<div class="controls" id="titleAdd"></div>
</div>
<script>
$(document).ready(function(){
$("#titles").hide();
var container="";
// Add & Remove textboxes
$("#filesdata").change(function(){
//Remove all textboxes
$("#titles").show();
$(container).empty();
$(container).remove();
//"DIV" ELEMENT AND DESIGN IT USING JQUERY ".css()" CLASS.
container = $('<div>', {class: 'controls'});
var option = $("#filesdata").val();
for(i=1;i<=option;i++)
{
// Add a TextBox
$(container).append('<input style="display: block;" type=text name="Description[]" class="span3 input-left-top-margins" id="Description' + i +'"' + 'placeholder="File ' + i + ' Title" />');
}
$('#titleAdd').after(container); // ADD THE DIV ELEMENT IN THE RIGHT PLACE.
});
});
</script>
答案 3 :(得分:1)
您已经提供了相同的id
&#34;文件&#34;适用于div
和select
更改
<select id="files" name="files" class="span3">
到
<select id="files-select" name="files" class="span3">
并试试这个js,
$(document).ready(function(){
$("#titles").hide();
});
var container;
// Add & Remove textboxes
$("#files-select").change(function(){
//Remove all textboxes
$("#titles").show();
$(container).empty();
$(container).remove();
//"DIV" ELEMENT AND DESIGN IT USING JQUERY ".css()" CLASS.
container = $('<div>', {class: 'controls'});
var option = $("#files-select").val();
for(i=1;i<=option;i++)
{
// Add a TextBox
$(container).append('<input style="display: block;" type=text name="Description[]" class="span3 input-left-top-margins" id="Description' + i +'"' + 'placeholder="File ' + i + ' Title" />');
}
$('#titleAdd').after(container); // ADD THE DIV ELEMENT IN THE RIGHT PLACE.
});