首页 > 解决方案 > 将变量传递给 JavaScript 函数

问题描述

我有以下功能

<script type="text/javascript"> 
function showUser(test, order) 
{ 
const but = document.getElementById(test);
if(but.getAttribute("onClick") === `showUser('${test}','DESC')`)
{
    but.setAttribute("onClick",`showUser('${test}','ASC')`);
}
else
{
    but.setAttribute("onClick",`showUser('${test}','DESC')`);
}

var users = document.getElementById('instructor-filter').value;
var club = document.getElementById('club-filter').value
var sort = test;
var order = order;

if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
}    

xmlhttp.open("GET","ajaxcall.php?student_instructor="+users+"&club="+club+"&sortby="+sort+"&orderby="+order,true);
xmlhttp.send();

}

我在我的代码的两个地方调用这个函数,就像这样

<select id="instructor-filter" onChange="showUser()">

<div class="col-sm-2"><a id="student_forename" onClick="showUser('student_forename','ASC')">Forename</a></div>

一个调用不需要将任何变量传递给函数,而另一个调用确实需要将两个变量传递给它。

这导致了我调用的一个不传递任何变量的问题不再起作用,而另一个则起作用。

因为我在函数中设置了两个变量,这是否意味着每次使用该函数时我都必须提供两个值?

标签: javascriptfunction

解决方案


当您不传递任何值时,默认情况下它将被视为未定义。您可能需要在函数内部设置一些默认值以使变量工作。


推荐阅读