[英]How to add multi value on input hidden
I have a sample code: 我有一个示例代码:
<input type="hidden" value="" name="stall_id">
<a href='javascript:;' onclick='check(this)' data-id='1'>Add</a>
<a href='javascript:;' onclick='check(this)' data-id='2'>Add</a>
<a href='javascript:;' onclick='check(this)' data-id='3'>Add</a>
My jquery: 我的jQuery:
function check(tr) {
var id = $(this).data("id");
$(tr).attr("onclick", "uncheck(this)");
$(tr).html('Add');
}
function uncheck(tr) {
var id = $(this).data("id");
$(tr).attr("onclick", "check(this)");
$(tr).html('Remove');
}
How to when check/uncheck, value will auto add on input hidden ? 如何在选中/取消选中时将隐藏的值自动添加?
Ex: <input type="hidden" value="1,3" name="stall_id">
if I had checked two value. 例如:
<input type="hidden" value="1,3" name="stall_id">
如果我检查了两个值。
You don't need to change onclick attribute of a
try this code will work fine for you use only single function:- 你并不需要改变的onclick属性
a
试试这个代码将工作的优良只使用单一的功能: -
function check(tr) {
var id = $(tr).data("id");
var hdn = $('[name="stall_id"]'), val;
var text = $(tr).html();
if (text == 'Add') {
val = hdn.val() == '' ? id : hdn.val() + ',' + id;
} else {
val = hdn.val().split(',').filter(function (d) {
return d != id;
}).join(',');
}
$(tr).html(text == 'Add' ? 'Remove' : 'Add');
hdn.val(val);
alert(hdn.val());
}
input type hidden can only have a literal value. 隐藏的输入类型只能有一个文字值。 If you use a comma separated string, you can elaborate it and transform it in an array.
如果使用逗号分隔的字符串,则可以对其进行详细说明并将其转换为数组。 Alternatively you can use form input arrays.
或者,您可以使用表单输入数组。 You can find some more information here .
您可以在此处找到更多信息。 Basically you'll need to create an input hidden (dynamically) for each value and set the name to "stall_id[]"
基本上,您需要为每个值创建一个隐藏(动态)的输入,并将名称设置为“ stall_id []”
This should work: 这应该工作:
function toggle(tr) { if ($(tr).hasClass("checked")) { $(tr).removeClass("checked").html("Add"); } else { $(tr).addClass("checked").html("Remove"); } var selected = []; $("a.checked").each(function() { selected.push($(this).data("id")); }); $("input[name=stall_id]").val(selected.join(',')); }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" value="" name="stall_id"> <a href='javascript:;' onclick='toggle(this)' data-id='1'>Add</a> <a href='javascript:;' onclick='toggle(this)' data-id='2'>Add</a> <a href='javascript:;' onclick='toggle(this)' data-id='3'>Add</a>
We're attaching a class "checked" to checked elements so that we can simply select all checked elements using jQuery's class selectors. 我们将一个“ checked”类附加到checked元素,以便我们可以使用jQuery的类选择器简单地选择所有checked元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.