我有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'])
答案 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