[英]How to add multi value on input hidden
我有一個示例代碼:
<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>
我的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');
}
如何在選中/取消選中時將隱藏的值自動添加?
例如: <input type="hidden" value="1,3" name="stall_id">
如果我檢查了兩個值。
你並不需要改變的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());
}
隱藏的輸入類型只能有一個文字值。 如果使用逗號分隔的字符串,則可以對其進行詳細說明並將其轉換為數組。 或者,您可以使用表單輸入數組。 您可以在此處找到更多信息。 基本上,您需要為每個值創建一個隱藏(動態)的輸入,並將名稱設置為“ stall_id []”
這應該工作:
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>
我們將一個“ checked”類附加到checked元素,以便我們可以使用jQuery的類選擇器簡單地選擇所有checked元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.