在onchange事件中,可以传递不是当前控件的参数吗

In an onchange event, can you pass parameters that are not the current control?

本文关键字:控件 参数 事件 onchange      更新时间:2023-09-26

如果我有一个函数:

function passSomeParams(p0, p1) {
    window.Location.href = "/something/anotherthing.aspx?firstParam=" +
        p0 + "&secondParam=" + p1;
}

我可以通过电流控制以外的输入吗?我想在下面做这样的事情,但没能让它发挥作用,也没能在网上找到资源,说明这是否可能。

<asp:CheckBox runat="server" ID="chkCheckboxA" />
<asp:CheckBox runat="server" ID="chkCheckboxB"
    onchange="passSomeParams(this.value, chkCheckboxA.value)"/>

谢谢。我很感激你的帮助。

如果必须按照您使用inline event handler的方式进行,那么您可以按照以下方式进行。但是还有更好的方法!

function passSomeParams1(v1, v2) {    
    //Option 1
    var param1 = v1;
    var param2 = v2;
    // --;
}
function passSomeParams2(v1, v2) { 
    //Option 2
    var param1 = document.getElementById(v1).value;
    var param2 = document.getElementById(v2).value;
    // --;
}

inline event handler:

document.getElementById('second').addEventListener("change", function() {
    //Option 3
    var param1 = document.getElementById('first').value;
    var param2 = document.getElementById('second').value;
    // --;
});

jQuery:

$('#second').on("change", function() {
    //Option 4
    var param1 = $(this).val();
    var param2 = $("#first").val();
    // --;
});

HTML(示例)

<input type="checkbox" id="first" value="1" />
<input type="checkbox" id="second" value="2" onchange="passSomeParams1(this.value, document.getElementById('first').value)"/>
<input type="checkbox" id="first" value="1" />
<input type="checkbox" id="second" value="2" onchange="passSomeParams2(this.id, 'first')"/>