目前我能够复制一个表单,但是我想设置一个限制它能够这样做的次数(复制)。是否有一种方法可以使它在例如我希望限制为5时,一旦表单总数达到5,“添加”按钮将被禁用(当我点击它时,它什么都不做)。但是,当我删除表单时,“添加”按钮再次变为功能(可以添加表单)。我只允许使用HTML CSS和Javascript。
$(function() {
var addDiv = $('#addinput');
var i = $('#addinput p').size() + 1;
$('#addNew').live('click', function() {
$('<label>Choose a picture<br><input type="file" ' + i + '" value="" /><img class="target" src="#" alt="Choose and Upload" /><a href="#" id="remNew">Remove</a></label><br>').appendTo(addDiv);
i++;
$('fieldset input').change(function() {
if (this.files && this.files[0]) {
var $target = $(this).next('.target');
var reader = new FileReader();
reader.onload = function(e) {
$target.attr('src', e.target.result).width(150).height(112);
};
reader.readAsDataURL(this.files[0]);
}
});
return false;
});
$('#remNew').live('click', function() {
if (i > 2) {
$(this).parents('label').remove();
i--;
}
return false;
});
});
.locationsector {
border-radius: 5px;
border: 5px solid black;
width: 30%;
margin-left: 0.79%;
float: left;
padding: 10px;
}
img {
text-align: center;
margin: 2%;
display: inline-block;
border: 10px solid #140E26;
border-radius: 10px;
padding: 5px;
width: 150px;
height: 112px;
}
#addNew {
background: black;
margin-left: 2%;
padding: 5px;
font-size: 15px;
color: white;
display: inline-block;
width: 100px;
border: 1px solid #140E26;
border-radius: 10px;
cursor: pointer;
text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<fieldset class="locationsector" id="addinput">
<legend>Test</legend>
<p>
<label for="north">Choose a Picture
<br>
<input type="file" required="required" />
<img class="target" src="#" alt="Choose and Upload" />
</label>
<br>
<a id="addNew">Add</a>
</p>
</fieldset>
答案 0 :(得分:0)
您已经有一个计数器i
,这很好。
这将使您更容易限制复制:
// ...
$('#addNew').live('click', function() {
if(i > 5) {
alert("Reached maximum number of fields.");
return false;
}
$('<label>Choose a picture<br><input type="file" ' + i + '" value="" /><img class="target" src="#" alt="Choose and Upload" /><a href="#" id="remNew">Remove</a></label><br>').appendTo(addDiv);
// ...
alert
来电是可选的(你提到什么都不做?)