由于复选框仅在检查时才发送内容,但我的服务器端脚本需要它们(带有值'Y'或'N'的已检查和未检查字段),我需要动态替换复选框表单字段(它们的功能) )具有相同名称的隐藏输入字段。所以我需要jQuery脚本,它将执行以下操作;
所以jQuery应该是当前状态:
<input type="checkbox" name="name1" checked="checked" />
<input type="checkbox" name="name2" />
动态替换为:
<input type="hidden" name="name1" value="Y" />
<input type="checkbox" checked="checked" onclick="function()"/>
<input type="hidden" name="name2" value="N" />
<input type="checkbox" onclick="function()"/>
或在提交表单之前用隐藏字段替换复选框字段和相应的值。
function()可以是noname并动态分配给复选框,并根据复选框状态用“Y”或“N”更改以前隐藏的字段。
答案 0 :(得分:0)
鉴于此html
<input type="hidden" name="myname_hidden" value="" />
<input type="checkbox" name="myname"/>
您可以使用类似这样的jQuery:
$("form").on('submit', function() {
$('input[type="checkbox"]').each(function(){
var $t=$(this);
var isset = $t.prop('checked') ? 'Y' : 'N';
$('input[name="'+$t.attr('name')+'_hidden"]').val(isset);
});
});
答案 1 :(得分:0)
如何创建y / n值数组并将该数组发送到服务器?您可以遍历复选框,如果选中此框,则将nameAttribute:Y
添加到数组中。如果未选中,只需将数组值设为“N”。
以下是一个例子:
function updateInputs() {
checkboxes.each(function () {
var name = this.name;
if (this.checked) {
myArray[name] = 'Y';
} else {
myArray[name] = 'N';
}
});
myArray = [];
}