1

我知道有人问过关于这个主题的几个问题,但我无法为我的案例找到答案。

我有一个检查checkbox

<input type="checkbox" name="text" checked="checked" />

我需要通过选中/取消选中来发送 ajax 请求,但我不知道什么是可靠的(与浏览器兼容),if statement例如

if (this.value == 'on')
{
this.value = 'off';
ajax call;
}
else
{
this.value ='on';
ajax call;
}

注意这里的值并不重要,我们需要 catch ,但是当 html 原始元素有 时checked/unchecked,如何控制选中的元素呢?JavaScriptchecked="checked"

如果使用checked而不是valueas

if (this.checked == true)
{
this.checked = false;
ajax call;
}
else
{
this.checked =true;
ajax call;
}

浏览器中的勾号checkbox不会更改(始终勾选)。

4

2 回答 2

4

以下应该有效:

function myFunction(elem)
{
    if (elem.checked)
    {
        alert("Im Checked");
    }
    else
    {
        alert("Im not checked");
    }
}

标记

<input type="checkbox" name="text" checked="checked" onchange="myFunction(this);" />

http://jsfiddle.net/QMhn5/

更新:从其他元素更改检查:

document.getElementById("chk").checked = true;

或者

document.getElementById("chk").checked = false;

示例:http: //jsfiddle.net/QMhn5/1/

于 2013-10-29T18:42:56.463 回答
1

如果您可以使用 jquery,这应该可以工作:

<input type="checkbox" id="c1" />


$("#c1").change(function(){
    var checked = $(this).is(":checked");
    console.log(checked);
    //ajax call
})

小提琴: http: //jsfiddle.net/XUgTC/,尝试单击复选框并查看控制台。

于 2013-10-29T18:42:48.593 回答