所以这是我的代码,我很奇怪,为什么变速球没有发送警报给我或设置变量值:为什么Javascript不能通过onChange更改变量?
var selecteduname;
var xmlhttp;
function changeUp()
{
document.getElementById("useruname").onChange = function() {
selecteduname = this.value;
alert(selecteduname);
updateAdduser();
}
function loadXMLDoc()
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
}
function updateAdduser()
{loadXMLDoc();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var json = xmlhttp.responseText;
var fields = JSON.parse(json);
Object.keys(fields).forEach(function (name) {
var input = document.getElementsByName(name);
input.value = fields[name];
});
}
}
xmlhttp.open("GET", "ajaxuseradd.psp?uname="+selecteduname, true);
xmlhttp.send();
}
</script>
和
<form action="adduser.psp" method="get">
<fieldset>
<label for="uname">Username:</label>
<select name="uname" id="useruname" onChange="changeUp();">
<%
Blah blah blah Python Code to generate option values
%>
<%= options %> //More Python code, this actually puts them into the select box
</select>
</fieldset>
<fieldset>
<label for="fname">First Name:</label>
<input type="text" name="fname" />
</fieldset>
<fieldset>
<label for="lname">Last Name:</label>
<input type="text" name="lname" />
</fieldset>
<fieldset>
<label for="email">Email:</label>
<input type="text" name="email">
</fieldset>
大概是因为属性的名称为'onchange'不'onChange'(可能还是更不对您的代码虽然)。 –
您的代码缺少一些东西...... http://www.jshint.com/reports/61002 – Incognito
确保一件很快捷的事情:您至少错过了一次关闭},以结束您的loadXMLDoc方法 – James