所以這是我的代碼,我很奇怪,爲什麼變速球沒有發送警報給我或設置變量值:爲什麼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