gpt4 book ai didi

javascript - 在 JQuery/Javascript 中未识别只读复选框已选中

转载 作者:行者123 更新时间:2023-12-01 04:33:51 25 4
gpt4 key购买 nike

我有带有编辑和保存选项的参数。例如下表

参数名称 Type1 Type2 Type3

测试rdb(checkBox) rdb(checkBox) rdb(checkBox) 编辑(按钮)

如果我单击编辑按钮,行将被启用,我需要选择任何一种类型复选框并保存类型。在保存类型时,我将复选框值分配为rdb='t'。这个't'将保存它在数据库中。现在我面临着这个问题。每当选择复选框时,值都会为空。下面是我正在使用的代码。

Mange_Page.html.erb

<script>
$('.editoidbtn').click(function() {
var $this = $(this);
var oid = $this.closest('tr').find('td:first-child').filter(function() {
return $(this).find('.editoidbtn').length === 0;
});
var oidName = $this.closest('tr').find('td:first-child').next().filter(function() {
return $(this).find('.editoidbtn').length === 0;
});
var expected = $this.closest('tr').find('td:first-child').next().next().filter(function() {
return $(this).find('.editoidbtn').length === 0;
});

if ($this.html() === 'Edit') {
$this.html('Save');
oid.attr('contenteditable', true);
oidName.attr('contenteditable', true);
expected.attr('contenteditable', true);
$this.closest("tr").find("input[name='rd_b']").attr('disabled', false);
$this.closest("tr").find("input[name='rd_v']").attr('disabled', false);
$this.closest("tr").find("input[name='rd_c']").attr('disabled', false);
$this.closest("tr").find("input[name='review']").attr('disabled', false);
$this.closest('tr').css('border', " solid skyblue");
}
else {

if ($this.html() === 'Save') {
saveRows($this);
$this.html('Edit');
oid.attr('contenteditable', false);
oidName.attr('contenteditable', false);
expected.attr('contenteditable', false);
$this.closest("tr").find("input[name='rd_b']").attr('disabled', true);
$this.closest("tr").find("input[name='rd_v']").attr('disabled', true);
$this.closest("tr").find("input[name='rd_c']").attr('disabled', true);
$this.closest("tr").find("input[name='review']").attr('disabled', true);
$this.closest('tr').css('border', 'none');
}
}
});

Java 脚本

function saveRows($this){

tr181 = $('#TR_protocol').is(":visible");
snmp = $('#SN_protocol').is(":visible");

var values = [];
var $row = $this.closest("tr"),
$tds = $row.find("td");
count = 0;
$.each($tds, function() {
values[count]=$(this).text();
count++;
});

if(tr181){
var parameter_name = values[0].trim();
var expected_value = values[1].trim();
if($row.find("input[name='rd_b']").attr('checked')){
var rdb = 't'
}else{
rdb =null;
}
if($row.find("input[name=rd_v]").attr('checked')){
var rdv = 't'
}else{
rdv =null;
}
if($row.find("input[name=rd_c]").attr('checked')){
var rdc = 't'
}else{
rdc =null;
}
if($row.find("input[name=reviews]").attr('checked')){
var review = null;
}

$.ajax({
type: "POST",
contentType: "application/json",
url: "/configuration/update_parameter",
data: JSON.stringify({
parameter_name: parameter_name,
expected_value: expected_value,
rdb: rdb,
rdv: rdv,
rdc: rdc,
review: review,
}),
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
success: function (result) {
if (result === 'false') {
alert('Parameter not Updated !!!');
return false;
} else {
alert('Parameter Updated successfully !!!');
}
}
});
}
}
}

从下面的部分我得到的 Ajax 响应为 nil。当我单击保存按钮时,即使我有雨雪复选框,控件也会转到其他部分。它必须与值“t”一起使用。

if($row.find("input[name='rd_b']").attr('checked')){
var rdb = 't'
}else{
rdb =null;
}

最佳答案

我认为问题在于您检查值​​是否检查的代码?

你尝试过使用吗,

example: .find("input[name=rd_v]").is(':checked') # returns true or false

关于javascript - 在 JQuery/Javascript 中未识别只读复选框已选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60274320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com