jquery checkbox-只获取选中的复选框的值
jquery checkbox - get the value of only the checked checkbox
$(function() {
$('input[type=checkbox]').change(
function() {
if ($(this).is(':checked')) {
document.getElementById("chk_option").value += this.value + ",";
alert($("#chk_option").val());
} else {
document.getElementById("chk_option_remove").value += this.value + ",";
}
}
);
});
<div>
<center>
<form id="form_tarif" class="form-horizontal" style="padding-top:57px;" action="pricesinput" method="POST">
<input type="hidden" id="chk_option" name="chk_option">
<input type="hidden" id="chk_option_remove" name="chk_option_remove">
<c:forEach items="${option_tarif_list}" var="option_tarif" varStatus="loop">
<div class="checkbox1">
<label>
<input type="checkbox" name="tarif_inclue[]" value="${option_tarif.id}" class="checkboxchk" id="option_tarif_chk_${option_tarif.id}">${option_tarif.libelle}
</label>
</div>
</c:forEach
</form>
</center>
</div>
你好,
你能帮我做下面的JS吗。我只需要取选中复选框的值,并在id#chk_option中使用它。然后,我将在Java代码中使用这个id插入数据库。
下面是我的部分java代码:
String currentTypeTarifIdStr = request.getParameter("current_typetarif_id");
Integer currentTypeTarifId = Integer.valueOf(currentTypeTarifIdStr);
String TypeTarifIdToRemoveStr = request.getParameter("typetarif_id_to_remove");
Integer TypeTarifIdToRemove = Integer.valueOf(TypeTarifIdToRemoveStr);
Integer trimmedOptionSplit = 0;
String optionChkStr = request.getParameter("chk_option");
String[] optionSplitStrs = optionChkStr.split(",");
String TypeTarifOptionToRemoveStr = request.getParameter("typetarif_option_to_remove");
Integer TypeTarifOptionToRemove = Integer.valueOf(TypeTarifOptionToRemoveStr);
query = mEntityManager.createQuery("DELETE FROM TarifTypeOptionEntity WHERE typeTarifId=:pId");
int deletedCount = query.setParameter("pId", currentTypeTarifId).executeUpdate();
mUserTransaction.commit();
for (String optionSplitStr : optionSplitStrs) {
String trimmedOptionSplitStr = optionSplitStr.trim();
// do something with trimmedOptionSplitStr
if (!trimmedOptionSplitStr.equals("")) {
trimmedOptionSplit = Integer.valueOf(trimmedOptionSplitStr);
}
mUserTransaction.begin();
TarifTypeOptionEntity typeTarifTypeOption = new TarifTypeOptionEntity();
typeTarifTypeOption.setTypeTarifId(currentTypeTarifId);
typeTarifTypeOption.setTarifOptionId(trimmedOptionSplit);
mEntityManager.persist(typeTarifTypeOption);
mUserTransaction.commit();
}
mUserTransaction.begin();
}
我将首先删除数据库中的所有内容,然后只在数据库中插入选中的复选框。为此,我应该用逗号连接所有检查的值。然后在我的java代码中,我将对其进行拆分并删除逗号。
但这并没有发生。有人能帮我编码并找出我做错了什么吗。
编辑:
控制台中没有错误,警报确实有效。事实上,这段代码非常有效。单击复选框时,将执行if子句,每次选中另一个复选框时都会在逗号后面添加值。这就是我在java中需要的那些值。但这并不是我从这段代码中所需要的。
现在,它只将我从复选框中未选中的值添加到数据库中。但这当然不可能发生,因为这个值已经存在,。所以我得到了由以下原因引起的错误:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (
locforall_booking .
t_be_tarif_type_option , CONSTRAINT
fk_t_be_type_tarif_option1 FOREIGN KEY (
be_tarif _option_id ) REFERENCES
t_be_trif_option (
id ) ON DELETE CASCA)
我的问题场景:如果我选中了两个值,并且没有取消选中它,而是选中了第三个值,那么它将删除数据库中的所有内容,只保留第三个数值。但我真正需要的是它删除数据库中的所有内容,并保留所有值,包括第三个值。
周围有Javascript专家可以帮忙吗?
您可以使用2D阵列执行此操作,如下所示:
<html>
var items = [["abc.jpg", "xyz.jpg"],["123.jpg","345.jpg"]];
alert(items[1][1]); // 345.jpg
</script>
</html>
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 正在验证8个真/假复选框或复选框中的2个
- 为复选框javascript指定两个值
- 如何在单击复选框后调用控制器方法
- 从复选框和Selects-KnockoutJS中获取值的总和
- 选中多个具有相同名称的复选框
- 使用Jquery选择或取消选择ListView中的所有复选框
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 使用$.ajax发布多个复选框
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- 使用jquery选中/取消选中单个复选框
- Angular JS Filter-通过3个复选框进行筛选
- 选中一个复选框后,使用html.checkbox自动禁用其他复选框
- checkbox.change()上的激发事件,但*之后会出现复选框
- Spring表单标记复选框(form:checkbox)隐藏字段未发送到服务器
- 如何使用jtree和checkbox/html_data插件自动检查复选框
- jquery checkbox-只获取选中的复选框的值
- Javascript在输入框被选中时检查复选框- checkbox array[]
- JavaScript & Checkbox - 存储每个复选框值的更有效方法
- $(& # 39;:复选框# 39;)或美元(& # 39;输入(type =“checkbox") & # 3