作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有带有编辑和保存选项的参数。例如下表
参数名称 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/
我是一名优秀的程序员,十分优秀!