一次增值

时间:2019-01-28 12:35:33

标签: javascript jquery

let kod = "";
$(".radOvladac").click(function(){
if($(this).is(':checked')){
  let value = $(this).val();
  kod = kod  + value;
  console.log(kod);
}

})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="ovladani">

                <input type="checkbox" value="-y1" class="regulaceTeploty">
                <h2>Tempeture regulation</h2>
                  <input type="checkbox" value="-a" class="radOvladac">Heater<br>
                  <input type="checkbox" value="-b" class="radOvladac">Ground heater 1<br>
                  <input type="checkbox" value="-c" class="radOvladac">Ground heater 2<br>
                  <input type="checkbox" value="-d" class="radOvladac">Funcoil<br>

              </div>

我有多个复选框(大约20个)

<input type="checkbox" value="-a" class="Configurator">Radiátory<br>
<input type="checkbox" value="-b" class="Configurator">Podlahové vodní<br>
<input type="checkbox" value="-c" class="Configurator">Podlahové el.<br>
<input type="checkbox" value="-d" class="Configurator">Funcoil<br>

如果我检查任何内容,请添加.val();作为变量“ kod”(代码)内的字符串

$(".radOvladac").click(function(){
if($(this).is(':checked')){
  let value = "";
  kod = kod + value;
  value = $(this).val();
  kod = kod + value;
  console.log(kod);
}

它会像“ -a-a-a-a-b ...”这样累加它的值,我该如何只切换一次该值? Kod是无法更改的全局变量。如果我选中复选框,它将添加-a->如果取消选中,它将删除-a,依此类推。我一直在使用-split,但这会很复杂。

3 个答案:

答案 0 :(得分:1)

根据我对您问题的了解,我想您需要以下解决方案。我也不知道radOvladac是什么,所以用了输入类希望对它有帮助:)

kod = "";
$(".Configurator").click(function() {
  let value = "";
  if ($(this).is(':checked')) {
    kod = kod + value;
    value = $(this).val();
    kod = kod + value;
  } else {
    value = $(this).val();
    index = kod.indexOf(value);
    //console.log(index);
    kod = kod.slice(0, index)
  }
  console.log(kod);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" value="-a" class="Configurator">Radiátory<br>
<input type="checkbox" value="-b" class="Configurator">Podlahové vodní<br>
<input type="checkbox" value="-c" class="Configurator">Podlahové el.<br>
<input type="checkbox" value="-d" class="Configurator">Funcoil<br>

答案 1 :(得分:1)

如果我正确理解了您的问题,应该这样做吗?

$(".radOvladac").click(function(){
if($(this).is(':checked')){
  let value = $(this).val();
  kod = kod + value;
  console.log(kod);
} else {
  kod = kod.replace($(this).val(), "");
}

答案 2 :(得分:0)

您的意思是这样...这将随时显示所有选中的项目。

df1 = pd.DataFrame({'old_index': [5, 9, 872],
                   'Value 1': [1.234, -0.233, 28.11]})
df2 = pd.DataFrame({'old_index': [6, 15, 23],
                   'Value 2': [-1.234, 0.433, 2.11]})

new_df = df1.merge(df2, how = 'outer').sort_values(by = 'old_index').fillna(method = 'ffill').reset_index(drop = True)
new_df.index+=1

new_df
  old_index Value 1 Value 2
1   5      1.234    NaN
2   6      1.234    -1.234
3   9      -0.233   -1.234
4   15     -0.233   0.433
5   23     -0.233   2.110
6   872    28.110   2.110
let kod = {};
$(".radOvladac").click(function(){
let val = $(this).is(':checked') ? $(this).val() : "";

kod["item" + $(this).val()] = val;

let finalVal = $.map(kod, function(v){
    return v;
}).join('')
alert(finalVal);
})