复选框onclick不会通过jscript更改检查

时间:2018-06-18 19:38:53

标签: javascript html checkbox

我有3个复选框,我希望能够单击该框并打开/关闭并通过jscript更改用于发布到状态天气项目的输入值是否被接受在另一页面上。但是我有逻辑脚本,但它不会工作,没有错误,但复选框不会点击开/关他们只是点击,这就是..而且价值不会改变,我不明白为什么。

有人可以看看这个简短的代码并告诉我原因。

谢谢。

<input  type="checkbox" id="paypal" name="paypal1"  value=" " onclick='chbxpp();' >
</input>
<label for="paypal" class="checkboxes" >Show PayPal Accepted</label>

<br>

<input   type="checkbox" id="facebook"  name="facebook"  value=" "  onclick='chbxfb(this);' >
</input>
<label for="facebook" class="checkboxes"  >Show FaceBook Contact Details</label>

<br>

<input   type="checkbox" id="twitter"  name="twitter"  value=" "  onclick='chbxtw(this);' >
</input>
<label for="twitter" class="checkboxes"  >Show Twitter Contact Details</label>



function chbxpp()
{

if(document.getElementById('paypal').checked === true) {
document.getElementById('paypal').checked = false;
document.getElementById('paypal').value='no';

var vv=document.getElementById('paypal').value;
console.log(vv);
}

if (document.getElementById('paypal').checked === false) {
document.getElementById('paypal').checked = true;
document.getElementById('paypal').value='yes';
var vv=document.getElementById('paypal').value;
console.log(vv);
}

}




function chbxfb(objfb)
{
var that = objfb;

(objfb);

if(document.getElementById(that.id).checked === true) {
document.getElementById(that.id).checked = false;
document.getElementById(that.id).value='no';

var vv=document.getElementById(that.id).value;

console.log(vv);

}

if (document.getElementById(that.id).checked === false) {
document.getElementById(that.id).checked = true;
document.getElementById(that.id).value='yes';

var vv=document.getElementById(that.id).value;

console.log(vv);

}

}



function chbxtw(objtw)
{
var that = objtw;
(objtw);


if(document.getElementById(that.id).checked === true) {
document.getElementById(that.id).checked = false;
document.getElementById(that.id).value='no';
var vv=document.getElementById(that.id).value;
console.log(vv);
}

if (document.getElementById(that.id).checked === false) {
document.getElementById(that.id).checked = true;

document.getElementById(that.id).value='yes';

var vv=document.getElementById(that.id).value;

console.log(vv);

}

}

objpp是我尝试另一种方法,但只做同样的事情......

如果我只是没有使用jscript并且只是使用了html,如果没有点击复选框或者值仍然会被发送,那么该值是无效的......

iv只是喜欢这个..

How to change the value of a check box onClick using JQuery?

声明如果未选中此框,则不会发送该值...但是,如何在发布已点击的内容之后如何知道....我是否会收到一个非isset($ _ POST ['paypal'])或空($ _ POST ['paypal'])

2 个答案:

答案 0 :(得分:2)

我想你的复选框开始时没有检查它们或.checked === false,但是当你调用你的函数chbxpp()时,它会查看你的.checked属性是否===如果是这样,它会设置它回到假。 click事件已经为您更改了复选框的.checked属性,无需在代码中执行此操作。

//If the checkbox is checked, set it to not checked...??? 
//But the problem is, the click event just set the .checked property to true
//so setting it back to false makes it like it never happened.
if(document.getElementById('paypal').checked === true) {
   //document.getElementById('paypal').checked = false; //This part is a no-no
   document.getElementById('paypal').value='yes';

}else{
   document.getElementById('paypal').value='no';
}

答案 1 :(得分:1)

根据Ryan Wilson的回答,将您的cbx初始值设置为false。 (另请检查cbx的格式 - 结束标记。)

j1 <-  max.col(is.na(df[-1]), 'first') * (rowSums(is.na(df[-1])) != 0)
ind <- j1 != 0
df[-1][cbind(seq_len(nrow(df)), j1)[ind,]] <- df$Value[ind]
df
#   Value  X1  X2 X3  X4 X5  X6  X7 X8 X9 X10
#1    100   3   2  1 100  4  NA   3  4 NA   4
#2    200   4   2  3   3  1 200   1 NA  1   1
#3    350   3   2  2   4  2   1 350  3 NA   3
#4    200   2   1  2   2  4   2   1  1  1   2
#5    150 150   1  3   4  3   1   4  3  1   2
#6    100   2   2  1   2  1   2   1  1  1   1
#7    120 120  NA  4   3  3   4   3 NA  3   2
#8    180   2   3  2   4  3   2   2  2  2   1
#9    100   2 100  2   3  4   3   1  2  1   1
#10   300   1 300 NA   2  1   1   2  1  2   3