将变量发送到jquery

时间:2016-10-18 05:42:26

标签: javascript jquery css

我有一个复选框,我想在检查时运行一个函数,并在未选中时运行另一个函数。我的代码是:

function showCustomer(str,str2) {
    if (document.getElementById(str).checked) {
        var xhttp;
    if (str == "") {
        document.getElementById("xxxx").innerHTML = "";
        return;
    }
        xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("xxxx").innerHTML = this.responseText;
        }
    };
    xhttp.open("GET", "add.jsp?q=" + str + "&q2=" + str2, true);
    xhttp.send();
    }
    else {
        var xhttp;
    if (str == "") {
        document.getElementById("xxxx").innerHTML = "";
        return;
    }
        xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("xxxx").innerHTML = this.responseText;
        }
    };
    xhttp.open("GET", "minus.jsp?q=" + str + "&q2=" + str2, true);
    xhttp.send();
    }
}

我的复选框代码是:

<input id="<%=cheque_tbl.getPRICE()%>" class="ch" type="checkbox" name="<%=cheque_tbl.getCHECKID()%>" onchange="showCustomer(this.value,this.id)">

问题是document.getElementById(str).checked不起作用且必须是document.getElementById("str").checked但我的复选框ID不是简单的字符串而是变量。

如何在getelement中使用var?为什么我的代码不起作用?

3 个答案:

答案 0 :(得分:0)

首先,您传递value, id

<input id="<%=cheque_tbl.getPRICE()%>" class="ch" type="checkbox" name="<%=cheque_tbl.getCHECKID()%>" onchange="showCustomer(this.value,this.id)">

并且您尝试使用值

进行访问
document.getElementById(str).checked

因此,您没有获取元素,element.checkedundefined或虚假。

将其更改为,

document.getElementById(str1).checked

它应该有用。

您也可以发送元素参考。

&#13;
&#13;
function showCustomer(el) {
  console.log(el.checked, el.value)
}
&#13;
<input 
       id="<%=cheque_tbl.getPRICE()%>" 
       class="ch" 
       type="checkbox" 
       name="<%=cheque_tbl.getCHECKID()%>" 
       onchange="showCustomer(this)">
<!--                          ^^^^                       -->
&#13;
&#13;
&#13;

答案 1 :(得分:0)

HTML更改:绑定复选框范围以便通过onchange函数访问它

<input id="dd" class="ch" type="checkbox" name="dd" onchange="showCustomer.apply(this,[this.value,this.id])">

JS改变:

function showCustomer(str,str2) {
    if (this.checked) {
        var xhttp;
    if (str == "") {
        document.getElementById("xxxx").innerHTML = "";
        return;
    }
        xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("xxxx").innerHTML = this.responseText;
        }
    };
    xhttp.open("GET", "add.jsp?q=" + str + "&q2=" + str2, true);
    xhttp.send();
    }
    else {
        var xhttp;
    if (str == "") {
        document.getElementById("xxxx").innerHTML = "";
        return;
    }
        xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("xxxx").innerHTML = this.responseText;
        }
    };
    xhttp.open("GET", "minus.jsp?q=" + str + "&q2=" + str2, true);
    xhttp.send();
    }
}

希望有助于解决复选框

的Document.getElementById()问题

答案 2 :(得分:0)

试试这个

 <input id="<%=cheque_tbl.getPRICE()%>" class="ch" type="checkbox" name="<%=cheque_tbl.getCHECKID()%>" onchange="showCustomer(this,this.id)">

并且在函数showCustomer中只使用str.checked而不是document.getElementById(str).checked。