使用jQuery,我有一个按钮,可以在点击时添加一个输入字段元素。成功提交到数据库后如何删除添加的元素?我应该如何验证动态添加的字段,因为它们具有动态名称?
这是表单的片段:
$(document).ready(function() {
var wrapper = $(".input_fields_wrap");
var count = 0;
$('p#add_field').click(function(e) {
e.preventDefault();
count += 1;
$('#container').append(
'<div>\n\
<label>Weight</label><input type="text" id="weight_' + count + '" name="weight[]' + '"/>\n\
<a href="#" class="remove_field">Remove</a><br>'
);
});
$(wrapper).on("click", ".remove_field", function(e) {
e.preventDefault();
$(this).parent('div').remove();
x--;
})
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form action="" method="POST" id="productForm">
<div class="messages"></div>
<label>Product</label><input type="text" id="product" name="product"><br>
<div id="container" class="input_fields_wrap">
<label>Available options:</label>
<div>
<p id="add_field"><button type="button" href="#"><span>Add new</span></button></p>
</div>
</div>
<button type="submit" name="btnSubmit">Save to database</button>
</form>
&#13;
以下是工作表单的fiddle。
我一直在尝试使用datatables插件来显示数据库的数据。到目前为止,我已经来到这里来验证Product
字段。但是不知道如何验证动态`Weight1字段并在提交到数据库后删除字段。
$(document).ready(function() {
var name = $("#product").val();
if (product == "") {
$("#product").closest('.form-group').addClass('has-error');
$("#product").after('<p class="text-danger">The product field is required</p>');
} else {
$("#product").closest('.form-group').removeClass('has-error');
$("#product").closest('.form-group').addClass('has-success');
}
if (product) {
$.ajax({
url: form.attr('action'),
type: form.attr('method'),
data: form.serialize(),
dataType: 'json',
success: function(response) {
// remove the error
$(".form-group").removeClass('has-error').removeClass('has-success');
if (response.success == true) {
$(".messages").html('Success');
// reset the form
$("#productForm")[0].reset();
} else {
$(".messages").html('Failed.');
}
}
});
}
return false;
});
答案 0 :(得分:2)
您可以使用$("[id*='weight']")
来动态创建输入字段。
以下示例删除所有动态输入字段。
$("[id*='weight']").each(function(){
$(this).parent("div").remove();
})
下面是我点击Validate
按钮时编写的示例。下面的例子只是给出一个想法。您可以根据需要进行修改。
$("#btnValidate").on("click", function(){
var error = false;
$("[id*='weight']").each(function(){
if ($(this).val().trim() === "") error = true;
});
if (error)
{
alert("Please udpate weight for all rows");
return false;
}
})