[英]Use jQuery to target multiple classes
I have this jQuery code where it can add and remove a select input form dynamically. 我有此jQuery代码,可以在其中动态添加和删除选择输入表单。
$(document).ready(function() {
var max_fields = 20; //maximum input boxes allowed
var wrapper = $(".input_fields_wrap"); //Fields wrapper
var add_button = $(".add_field_button"); //Add button ID
var x = 1; //initlal text box count
$(add_button).click(function(e) { //on add input button click
e.preventDefault();
if (x < max_fields) { //max input box allowed
x++; //text box increment
$( ".aaaa" ).first().clone().appendTo( ".input_fields_wrap" );
}
});
$(wrapper).on("click", ".remove_field", function(e) {
e.preventDefault();
if($(".aaaa").length > 1) {
$(this).parent('div').remove();
} else {
alert('You can not delete all elements');
}
})
});
I want to use this jQuery code to many classes( class="input_field_wrap and etc."
). 我想将此jQuery代码用于许多类(
class="input_field_wrap and etc."
)。
The only thing I can see to make it work is to make it as an onclick function? 我能看到的唯一使其起作用的方法就是使其成为onclick函数?
function createSelect(wrapper, add_button, a) {
var max_fields = 20;
var x = 1;
$(add_button).click(function(e) { //on add input button click
e.preventDefault();
if (x < max_fields) { //max input box allowed
x++; //text box increment
$( ".aaaa" ).first().clone().appendTo( ".input_fields_wrap" );
}
});
}
This doesn't work. 这行不通。
HTML: HTML:
<div class="input_fields_wrap">
<a href="#" class="add_field_button" >Add Another Prescibed Medication</a>
<div class="aaaa">
Prescibed Medication Name:
<select class="form-control" name="prescription[]">
<option value="">Select an option</option>
<?php
foreach($prescription->result() as $row)
{
echo '<option value="'.$row->id.'">'.$row->name.'</option>';
}
?>
</select>
<a href="#" class="remove_field">Remove</a>
</div>
</div>
You've just to use event delegation on()
to deal with fresh DOM added dynamically as you do in the previous click event for .remove_field
, it will be : 您只需使用事件委托
on()
来处理动态添加的新DOM,就像在.remove_field
的上一个click事件中.remove_field
,它将是:
$('body').on('click', '.add_field_button', function(e) {
e.preventDefault();
if (x < max_fields) { //max input box allowed
x++; //text box increment
$( ".aaaa" ).first().clone().appendTo( ".input_fields_wrap" );
}
});
Hope this helps. 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.